만족
[JAVA] String 클래스의 equals메소드와 ==연산자의 차이점 본문
[JAVA] String 클래스의 equals메소드와 ==연산자의 차이점
JAVA/설명 Satisfaction 2017. 12. 19. 20:57String a1="ABC";
String a2=new String("ABC");
으로 선언되었다고 가정하자.
==연산자
==연산자는 두 변수가 서로 같은 Heap영역을 참조하는지를 가리킨다.
a1와 a2는 모두 매개값으로 "ABC"를 갖지만, a2는 new 연산자를 사용하여 새로운 인스턴스를 생성하였기 때문에
서로 다른 Heap영역을 참조하게 되고, a1==a2는 false를 반환한다
equals메소드
equals메소드는 매개값이 같은지를 비교한다
그렇기 때문에 a1과 a2가 참조하는 Heap영역이 다르더라도, 매개값이 "ABC"로 같으므로
a1.equals(a2)는 true를 반환한다.
'JAVA > 설명' 카테고리의 다른 글
[JAVA] Comparison method violates its general contract! (0) | 2021.04.16 |
---|---|
[Eclipse] 이클립스 실행 불가 문제 (0) | 2018.06.17 |
[JAVA] eclipse plugin 인식 불가 문제 (0) | 2017.12.19 |
[JAVA] OutputStream사용시의 주의할 점 (0) | 2017.12.19 |
[JAVA] 파일 입출력(File Input/Output) (0) | 2017.12.19 |
Comments