[Java] equals 와 == 의 차이

seungtoctoc·2023년 12월 22일
0

문자열을 비교하는데,
C++처럼 ==로 문자열 비교를 했더니
조건식에 걸리지를 않았다.

equals를 썼더니 조건식에 걸려서 알아보았다.

String의 특징

  • int, char은 주소값을 가지지 않는다. (Call by Value)
  • String클래스이며, 객체 생성 시 주소값이 부여된다. (Call by Reference)

차이

equals

  • 대상 값 비교

==

  • 주소값 비교
  • 동일 객체 참조하는지 확인

Plus

문자열 생성 방법 1 : 리터럴
String str = "test";

  • string constant pool 영역에 존재
    • 내부적으로 String의 intern() 메서드 호출
    • intern() 메서드는 문자열이 string constant pool에 존재하면 주소값 반환, 없으면 새로 만들어 넣고 주소값 반환

문자열 생성 방법 2 : new 연산자
String str = new String("test");

  • Heap 영역에 존재

0개의 댓글