Java
[Java] == 연산자, equals() 차이점 - 문자열 비교
brightGarden02
2022. 12. 12. 09:23
== 연산자, equals() 메소드의 차이점을 정리하고자 한다.
== 연산자는 주소값을 비교한다.
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
if(s1 == s2) {
System.out.println("두개의 주소값이 같습니다.");
} else {
System.out.println("두개의 주소값이 다릅니다.");
}
따라서 주소값이 다르므로 다음과 같이 출력된다.
반면에 equals() 메서드는 값을 비교한다.
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
if(s1.equals(s2)) {
System.out.println("두개의 값이 같습니다.");
} else {
System.out.println("두개의 값이 다릅니다.");
}
값이 같으므로 다음과 같이 출력된다.
public final class String 안에 있는
equals() 메소드는 지정된 객체와 비교한다고 설명되어 있다. 값을 비교한다는 것을 알 수 있다.
StringLatin1.equals() 내부는 다음과 같다
길이가 같은지 비교하고
byte 하나하나가 같은지 for문을 돌면서 if를 통해 비교한다.