코딩하렴

Java String==String 은 true?

by 으렴
	public static void main(String[] args) {
		String s1 = "asdf";
		String s2 = "asdf";
		String s3 = new String("asdf");
		String s4 = new String("asdf");
		
		System.out.println(s1==s2);	
		System.out.println(s1==s3);
		System.out.println(s3==s4);	
	}

이 코드의 실행 결과는?

 

true
false
false

s1과 s2는 같은 리터럴 객체를 가리킨다.

 

s1은 리터럴 타입(메모리 위치 안의 값)이고 s3은 String객체를 생성해서 그안에 값을 넣었다.

엄밀히 말해 다른 주소를 가리키고 있다.

 

s3과 s4는 단순히 new한 객체들이다. 당연히 주소값은 다르다.

사이트의 정보

코딩하렴

으렴

활동하기