Hello, Coding
[ JAVA ] "==" 와 "equals" 의 차이점은 무엇일까? 본문
흔히 프로그래밍 코드에서는 "~~와 같다"를 표현할 때 == 을 사용한다.
하지만 자바에서는 String 타입에서는 == 대신 equals()라는 메소드를 사용해 비교한다.
왜 equals()를 사용할까?
자바에서 String을 사용하는데는 두 가지의 방법이 존재 합니다.
1. 리터럴을 이용한 방식
2. new 연산자를 이용한 방식
먼저 == 연산자의 처리 방식을 알아보자 == 는 흔히 주소 값을 비교하여 맞으면 true를 반환한다.
하지만 여기서 자바의 equals() 메소드는 주소 값을 비교하지 않고 비교하고자 하는
두 개의 대상의 값 자체를 비교하게 된다.
여기서 알고가야 하는 것이 있는 데 바로 동등성과 동일성이다.
동등성 : 객체가 주소값이 다르더라도 내용(필드값)이 같다면 같다고 보는 것. ex) equals()
동일성 : 객체가 주소값이 다르면 아무리 같은 내용이더라도 같지 않다고 보는 것. ex) ==
그래서 equals() 메소드는 String을 생성하느냐에 따라 결과가 달라지지 않고 정확한 비교를 할 수 있다.
String 사용 방법에 따른 처리 로직은 아래를 참고하면 된다.
'개발 질문 & 답변 > 자바 질의응답' 카테고리의 다른 글
[ JAVA ] 자바에서 문자열을 다루는 메소드 총 정리 (0) | 2023.05.28 |
---|---|
[ JAVA ] 자바에서 String은 기본 데이터 타입인가? (0) | 2023.05.28 |
[ JAVA ] 자바에서 final은 어디에 쓰일까? (0) | 2023.05.27 |
[ JAVA ] 두 객체가 동일한 hashCode()를 가지면 Equals()가 참인가? (0) | 2023.05.27 |
[ JAVA ] JDK와 JRE의 차이점은 무엇일까? (0) | 2023.05.26 |