- String에서 ==와 equlas의 차이
- == 연산자
- **주소값이 같은지를 비교**
- int, boolean과 같은 `primitive type`에 대해서는 값을 비교
- cf) `primitive type`도 Constant Pool에 있는 특정 상수를 참조하는 것이기 때문에 결국 주소값을 비교하는 것으로 볼 수 있다
- 같은 상수를 참조하면 주소값이 같으니 결국 같은 값이면 동일하다고 판단
- equals() 존재하지 않음
- `reference type`에 대해서는 주소값을 비교
- == 연산자
- 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 |
---|
댓글