== 와 equals()

이원석·2022년 4월 27일
0

Java

목록 보기
9/9
post-thumbnail

1. ==


Java에서 "=="는 항등 연산자(Operator) 입니다. 객체간의 주소를 비교할때 사용됩니다.

String s1 = new String("test");
String s2 = new String("test");

String s3 = "test"
String s4 = "test"

System.out.println(s1 == s2); // False
System.out.println(s3 == s4); // True
System.out.println(s1.equals(s2)) // True
System.out.println(s3.equals(s4)) // True - String constant pool의 객체값을 비교

String 객체 s1, s2에는 같은 "test"라는 문자열이 저장되어 있지만, 서로의 객체가 다른 메모리 주소를 가르키기 때문에 False를 반환합니다. 리터럴 방식의 문자열 s3, s4는 String constant pool에 생성되는 객체를 공유하기 때문에 같은 주소를 가르켜 True를 반환합니다.



2. equals()


Java에서 equals()는 객체 비교 메서드입니다. 두 객체의 값(문자열 객체의 데이터)이 같은지를 비교하기 때문에 원시타입(Primitive Types)에 대해서는 적용할 수 없으며 참조타입(Reference Types)에 대해서는 적용할 수 있습니다.





[참조문헌]
https://github.com/WeareSoft/tech-interview/blob/master/contents/java.md

0개의 댓글