[자바 문자열 비교]Java String euqals과 == 의 차이점
[자바 문자열 비교]Java String euqals과 == 의 차이점
간단하게 비교 해볼수 있다.
문자 리터럴 문자'Java'를 비교하는 게 아니라 저장된 주소값을 비교한다고 생각하면 된다.
리터럴로 선언된 값은 변수가 달러도 같은 문자열이 있다면 동일한 주소값을 가리키고 있다.
이 그림을 보면 쉽게 이해가 갈 것이다.
새로운 Object 생성 시에 주솟값은 항상 바뀐다.
예제와 함께 보면 좀 더 이해가 쉬움~
package test1;
import java.util.ArrayList;
import java.util.List;
public class test1 {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Java";
String stringObject = new String("Java");
String stringObject1 = new String("Java");
/**
* eqauls 비교
*/
if (str1.equals(stringObject))
System.out.println("str1 == stringObject true");
else
System.out.println("str1 == stringObject false");
if (stringObject.equals(stringObject1))
System.out.println("stringObject == stringObject1 true");
else
System.out.println("stringObject == stringObject1 false");
System.out.println("**************************************************************************************");
System.out.println("**************************************************************************************");
/**
* == 비교
*/
if (str1 == str2)
System.out.println("str1 == str2 true");
if (str1 == stringObject)
System.out.println("str1 == stringObject true.");
else
System.out.println("str1 == stringObject false");
if (stringObject == stringObject1)
System.out.println("stringObject == stringObject1 true");
else
System.out.println("stringObject == stringObject1 false");
}
}
끝~