Chapter 05. 참조 타입
05-1. 참조 타입과 참조 변수
- 기본 타입(primitive type)
- 으로 선언된 변수는 실제 값을 변수 안에 저장
- byte, char, short, int, long, float, double, boolean
- 참조 타입(reference type)
- 으로 선언된 변수는 메모리의 번지를 변수 안에 저장
- array, 열거, class, interface
- 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있다
- null값도 초기값으로 사용할 수 있기 때문에 null로 초기화된 참조 변수는 스택 영역에 생성됨
- 참조 변수가 null을 가지고 있을 경우, 참조 객체가 없으므로 참조 변수를 통해 객체를 사용할 수 없다. 만약 사용하면
NullPointerException
발생
- JVM이 사용하는 메모리 영역
- Method Area
- JVM이 시작할 때 생성되고, 모든 스레드가 공유하는 영역
.class
들을 클래스 로더로 읽어 클래스별로 static field, constant, method code, constructor code 등을 분류해서 저장
- Heap Area
- 객체와 배열이 생성되는 영역
- Stack Area
- 메소드를 호출할 때마다 push frame(프레임 추가), 메소드 종료되면 pop frame(프레임 제거)
- Method Area
- String
- String은 클래스이므로 참조 타입
- 문자열을 String 변수에 저장한다(엄밀히 틀린 표현)
- 문자열은 String 객체로 생성되고 변수는 String 객체를 참조한다. (True)
==
연산은 번지가 같은지 검사.equals()
연산은 내부 문자열이 동일한지 검사
'Java' 카테고리의 다른 글
[Java] Java 11 설치 (0) | 2024.03.20 |
---|---|
[Spring] Service와 ServiceImpl (0) | 2024.03.20 |
[Java] 04-2. 반복문: for문, while문, do-while문 (0) | 2024.03.20 |
[Java] 04-1. 조건문: if문, switch문 (0) | 2024.03.20 |
[Java] 03. 연산자 (0) | 2024.03.20 |