목차
1. 레퍼런스와 인스턴스 비교
2. Garbage
int[] arr;
메모리 주소가 저장된다.
변수의 크기는 특정되지 않는다.
arr = new int[3];
연속된 int 메모리
arr
: 메모리의 주소를 저장하는 변수 = reference
int[3]
:new
명령을 통해 준비한 메모리 = instance
int[] arr = new int[3];
인스턴스에 소속된 변수는 기본값이 자동으로 설정된다.
- 정수 : 0
- 부동소수점 : 0.0
- 논리 : false
- 문자 : \u0000
- 모든것은 0으로
int[] arr = new int[3];
arr : 레퍼런스
Board[] arr = new Board[3];
Board b1, b2, b3;
레퍼런스가 3개 만들어진다. 인스턴스가 3개 만들어지는것이 아니다.
arr[0] = new Board();
인스턴스를 1개 생성한다.
여러개 만들고 싶으면 이 과정을 반복문으로 반복하는 수밖에 없다.
arr[0]
위는 레퍼런스 변수이다.
arr[1].no = 100;
arr[1]에 있는 주소로 가서
no
field에 100을 저장한다.
String[] names = new String[28];
names[0] = "조주연";
new String("조주연");
이라고 써야하지만 생략가능
메모리만 차지한다.
= garbage(쓰레기)
garbage collector가 garbage를 제거한다.
JVM을 종료하면 JVM이 사용했던 모든 메모리를 OS가 강제로 해제시킨다.