반응형
교수님이 저번 수업 시간 중 물어보셨다.
a == b와 a.equals(b)의 차이에 대해. 하여 기말고사를 준비할겸 적어본다.
"a == b "
"==" 연산자는 두 변수가 동일한 메모리 위치를 참조하는지 확인한다. 그렇기에 a와 b가 같은 String 객체를 가리키는 경우에만 true를 반환하는 것이다. 그렇기 때문에 메모리 위치가 다르면 내용이 같아도 false를 반환할 수 있다.
"a.equals(b) "
"a.equals(b)" .equals() 메서드는 두 String 객체의 내용이 동일한지 비교한다. 그렇기에 문자열 내용이 동일한 경우, .equals()는 true 를 반환합니다. 문자열의 내용을 비교하므로 객체의 메모리 위치가 다르더라도 내용이 같으면 true 를 반환할 수 있다.
반응형
'코딩 > JAVA' 카테고리의 다른 글
[JAVA] overloading과 overriding의 개념과 차이 (2) | 2023.10.18 |
---|---|
Java Constructor(생성자)의 개념, 특징, 및 사용 방법 (0) | 2023.10.18 |
[JAVA] 비정적(non-static) 멤버 변수와 정적(static) 멤버 변수의 차이와 RAM(메모리) 배치 (0) | 2023.10.17 |
Discuss how Java program is executed on a computer. (자바가 컴퓨터에서 실행되는 과정) (0) | 2023.10.17 |
[JAVA] this의 역할 (0) | 2023.10.17 |