== 연산자
- 항등 연산자(Operator)입니다.
- 참조 비교(Reference Compariso)
- 두 객체가 같은 메모리 공간을 가리키는지 확인합니다.
- 반환 형태: boolean
- 같은 주소면 true, 그렇지 않으면 false
- 모든 기본 타입(Primitive Type)에도 적용할 수 있습니다.
public class Test {
public static void main(String[] args) {
System.out.println(10 == 20);
System.out.println('a' == 'b');
System.out.println('a' == 97.0);
System.out.println(true == true);
}
}
- 참조 타입(Reference Type)에도 적용할 수 있습니다.
- 이때, 사용하는 객체 인자의 유형간에 호환성이 있어야합니다.
- 그렇지 않으면 컴파일 오류가 발생합니다.
public class Test {
public static void main(String[] args) {
Thread t = new Thread();
Object o = new Object();
String s = new String("hello");
System.out.println(t == o);
System.out.println(o == s);
System.out.println(t == s);
}
}
equals 메소드
- 객체 비교 메소드입니다.
- 내용 비교(Content Comparison)
- 두 객체의 값이 같은지 확인합니다.
- 즉, 문자열의 데이터/내용을 기반으로 비교합니다.
- 기본 타입에 대해서는 적용할 수 없습니다.
- 반환 형태: boolean
- 같은 내용이면 true, 그렇지 않으면 false
public class Test {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("hello");
String s3 = new String("world);
String s4 = "world";
System.out.println(s1.equals(s2));
System.out.println(s2.equals(s3));
System.out.println(s3.equals(s4));
System.out.println(s3 == s4);
}
}