== 연산자, 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를 통해 비교한다.
'Java' 카테고리의 다른 글
[JAVA] List, ArrayList 차이 (0) | 2023.01.04 |
---|---|
java entity -> dto 변환 stream, map, collect 사용 - 동작원리(1) (0) | 2023.01.02 |
json을 flat(parameter-delimiter)파일로 변환하기(json 파싱) (0) | 2022.12.16 |
[Java] 인코딩(Encoding)된 데이터를 디코딩(Decoding)하기 (0) | 2022.12.14 |
[Java] json 파일 읽기, 파싱 -Mac (0) | 2022.12.13 |
댓글