728x90
String 변수 생성 시 주소 할당 방법
1. 리터럴(literal)을 이용한 방식
String str1 = "hello"; // literal
- Heap 영역의 string constant pool이라는 영역에 저장된다.
2. new 연산자를 이용한 방식
String str2 = new String("hello"); //new 연산자
- Heap 영역에 저장된다.
주소값 비교(==)와 값 비교(equals)
== 연산자
- 비교하고자 하는 두 대상의 주소값을 비교한다.
equals 메서드
- String 클래스의 메서드로 비교하고자 하는 두 대상의 값 자체를 비교한다.
- 기본 타입(int, char) 등은 Call by value 형태로 기본적으로 대상의 주소값을 가지지 않지만, String은 일반적인 타입이 아니라 클래스이므로 Call by Reference 형태로 생성 시에 주소값이 부여된다. 따라서, 같은 값을 가지더라도 서로 다른 주소값을 가질 수 있다.
참고
728x90
'[JAVA] > JAVA 기본' 카테고리의 다른 글
DTO 클래스 ↔︎ Entity 클래스 Mapping에 대한 정리(ModelMapper, Mapstruct, 수동매핑) (0) | 2023.05.08 |
---|---|
JVM과 자바 메모리 구조 간단 요약 정리 (0) | 2023.05.05 |
예외 던지기(throw & throws) 30초 요약 정리 (0) | 2023.03.15 |
import 문, static import 문 (0) | 2023.02.27 |
[JAVA] 다형성 (0) | 2023.02.10 |