java 221115

John·2022년 11월 15일
0

java

목록 보기
14/20
public static void main(String[] args) {
	String s1 = new String("java");
	String s2 = new String("java");
	String s3 = s2;
//
	System.out.println(s1 == s2);
	System.out.println(s1.equals(s2));
	System.out.println(s2 == s3);
	System.out.println(s2.equals(s3));
//
	if (s1 == s2) {
		System.out.println("s1, s2 참조대상 같다。");
	} else {
		System.out.println("s1, s2 참조대상 다르다。");
	}
//
	if (s2 == s3) {
		System.out.println("s2, s3 참조대상 같다。");
	} else {
		System.out.println("s2, s3 참조대상 다르다。");
	}
//
	if (s1.equals(s2)) {
		System.out.println("s1, s2 내용 동일하다。");
	} else {
		System.out.println("s1, s2 내용 다르다。");
	}
//
	if (s2.equals(s3)) {
		System.out.println("s2, s3 내용 동일하다。");
	} else {
		System.out.println("s2, s3 내용 다르다。");
	}
}

String class 도 Object class 를 상속했기때문에
문자열의 내용을 비교할수있도록
Object class 의 equals() 메소드를 재정의하였다

new 로 객체생성을 했기때문에 기본적으로 참조주소가 저장된다.
따라서 == 연산이 이뤄질때 주소값을 비교하게된다.

참조주소가 아닌 문자열의 내용비교를 위해서는
일반적인 객체에서 비교하는 방법과 같이
equals 를 오버라이드 해야하지만,
이미 String class 에 equals 가 오버라이드 되어있기 때문에
그대로 사용해도 된다.

profile
hello there

0개의 댓글