[자바 문자열 비교]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");

}

}









끝~

Posted by 김까리 까리성

댓글을 달아 주세요