hayu's 개발 일지

[TIL]240424 JAVA ==과 equals() 차이 본문

기술/java

[TIL]240424 JAVA ==과 equals() 차이

hayu00 2024. 4. 24. 21:53

==과 equals() 차이

  • == 연산자는 객체의 주소를 비교하여 일치하는지 확인하고, equals() 메서드는 객체의 내용을 비교하여 같은지 확인하는 메서드이다.

== 연산자

  • ==연산자는 두 문자열의 주소(참조)값이 같은지 비교한다. 즉, 두 객체가 메모리에서 동일한 위치를 가리키는지 확인한다.

→ 주소값이 다르면 false가 된다.

equals()

  • equals() 메서드는 두 객체의 내용을 비교한다. 즉, 두 객테가 동일한 값을 가지고 있는지 확인한다.

 

문자열(String) ==과 equals() 차이

  • ==연산자는 두 문자열의 주소(참조)값이 같은지 비교하고 equals() 메서드는 두 객체의 내용을 비교한다.
  • 문자열 리터럴을 사용하면 문자열이 같으므로 true를 반환한다. 그러나 new 연산자로 생성한 문자열과 리터럴은 주소값이 다르므고 false를 반환한다.
String str1 = "string"; // 리터럴로 선언
String str2 = "string"; // 리터럴로 선언
String str3 = new String("string"); // new 연산자로 선언

System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
  • equals() 메서드는 문자열의 내용을 비교한다. str1과 str3은 주소값이 다르더라도 내용이 같기 때문에 true를 반환한다.
String str1 = "string"; // 리터럴로 선언
String str2 = "string"; // 리터럴로 선언
String str3 = new String("string"); // new 연산자로 선언

System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true

⇒ 문자열로 내용을 비교하려할 때는 .equals() 메서드를 사용해야한다.

'기술 > java' 카테고리의 다른 글

99클럽 코테 스터디 13일차 TIL + 재귀 함수  (0) 2024.06.02
[TIL]240502 Garbage Collection  (0) 2024.05.02
[TIL]240417 열거형(enum)  (0) 2024.04.17
[TIL]240416 wrapper 클래스  (0) 2024.04.16
[TIL]240410 JAVA Collection  (0) 2024.04.10