JAVA
equals 메소드와 == 연산자
김T준
2021. 7. 9. 14:48
728x90
equals
두 객체의 데이터값을 비교하는 메소드
ex)
String str1 = "가나다";
String str2 = "나다가";
String str3 = "가나다";
if (str1.equals(str2)) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
if (str1.equals(str3)) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
[실행결과]
동일하지 않은 문자입니다
동일한 문자입니다
==
두 객체의 주소값을 비교하는 연산자
ex)
String str1 = "가나다";
String str2 = "나다가";
String str3 = "가나다";
if (str1 == str2) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
if (str1 == str3) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
[실행결과]
동일하지 않은 문자입니다
동일한 문자입니다
※ String 클래스는 같은 값의 객체가 큰따옴표를 통해 생성되었을 경우 기존에 생성되어 있던 참조 변수와 같은 객체 주소값을 갖는다.
예제 1.
<equals와 == 비교>
String str1 = new String("가나다");
String str2 = new String("나다가");
String str3 = new String("가나다");
if (str1.equals(str2)) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
if (str1.equals(str3)) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
//////////////////////////////////////////////////
if (str1 == str2) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
if (str1 == str3) {
System.out.println("동일한 문자입니다");
} else {
System.out.println("동일하지 않은 문자입니다");
}
[실행결과]
동일하지 않은 문자입니다
동일한 문자입니다
동일하지 않은 문자입니다
동일하지 않은 문자입니다
※ equals 메소드는 String 참조변수가 갖고 있는 객체의 값을 비교한 것이고, == 연산자는 String 참조변수가 갖고 있는 객체의 주소값을 비교한 것이기 때문에 결과값이 다르게 나온다