본문 바로가기
Web

[Java] equals()와 ==의 차이점

by DuncanKim 2022. 7. 19.
728x90

[Java] equals()와 ==의 차이점

 

equals()는 Object 클래스의 메소드이다.

public boolean equals(Object obj) { ... }

 

equals()는 리턴값으로 boolean 형식을 가진다. 모든 객체를 인자로 받을 수 있다.

 

 

자바에서는 두 객체를 동등 비교할 때 equals() 메서드를 사용한다. equals()는 두 객체를 비교해서 논리적으로 동등하면 true를 리턴하고, 그렇지 않으면 false를 리턴한다. 여기서 논리적 동등성은 같은 객체든 다른 객체든 객체가 저장하고 있는 데이터가 동일함을 의미한다. 즉, 객체의 메모리 번지를 비교하는 것이 아니라, 문자열이나 숫자가 같은지를 비교하는 것이다.

 

 

== : 동치성 비교. 달이라고도 하고 moon이라고도 하지만, 결국 달과  moon은 하나를 가리킨다.
         달과 moon은 동치성에 있어서 같은 것이다.

equals : 동등성 비교. 달과 moon이 정말 값적인 측면에서 같은지를 보는 것이다. 

 

String name1 = "안녕";
String name2 = "안녕";
name1 += "!";
System.out.println(name1);// 안녕!
System.out.println(name2);// 안녕!

String name3 = "안녕!";
System.out.println(name1 == name3); //false

 

728x90

'Web' 카테고리의 다른 글

[Spring] Factory-Method Pattern  (0) 2022.07.23
[Spring] Singleton Pattern  (0) 2022.07.22
[Java] Wrapper 클래스  (0) 2022.07.18
[Java] throws  (0) 2022.07.17
[Java] Resource를 다룰 때 예외처리(finally, AutoCloseable)  (0) 2022.07.17

댓글