본문 바로가기
자바

String에서 ==와 equals()의 차이

by 태풍사랑 2022. 4. 27.
  • String에서 ==와 equlas의 차이
    1. == 연산자
      • **주소값이 같은지를 비교**
      • int, boolean과 같은 `primitive type`에 대해서는 값을 비교
        • cf) `primitive type`도 Constant Pool에 있는 특정 상수를 참조하는 것이기 때문에 결국 주소값을 비교하는 것으로 볼 수 있다
        • 같은 상수를 참조하면 주소값이 같으니 결국 같은 값이면 동일하다고 판단
        • equals() 존재하지 않음
      • `reference type`에 대해서는 주소값을 비교

 

  1. equals()
    • String은 객체여서 equals()를 통해 비교해야 한다
    • 내부적으로 주소값을 비교하지만 **String 클래스에서는 equals()를 재정의해 내용을 비교**

 


  • 기본형 타입(`primitive type`)
    • 총 8가지의 기본형 타입을 미리 정의하여 제공
    • 기본값이 있기 때문에 Null 값 존재 X
    • 실제 값을 저장하는 공간으로 스택 메모리에 저장타입기본값
      논리형 boolean false
      정수형 byte 0
        short 0
        int 0
        long 0L
      실수형 float 0.0F
        double 0.0
      문자형 char '\u0000'
  • 참조형 타입(`Reference type`)
    • 기본형 타입을 제외한 타입들
    • Null 존재
    • 값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 힙 메모리에 저장타입
      배열(Array)
      열거(Enumeration)
      클래스(class)
      인터페이스

'자바' 카테고리의 다른 글

클래스, 객체, 인스턴스  (0) 2022.07.26

댓글