1. 메모리에서 객체 생성(동적 생성)
객체는 메모리에서 동적으로 생성되며, 객체가 더 이상 필요 없게 되면 GC(Gabage Collector)에 의해 제거된다.
가운데 영역을 메모리라고 하면
class를 정의하고 new 라는 키워드로 객체들을 생성하면 메모리에 객체가 생성이되고,
ChildClass child = new ChildClass();
여기서 new 로 ChildClass 객체를 생성하면 메모리상 obj. 에 생성이 되고
child 라는 변수에는 obj.의 주소가 저장된다(레퍼런스)
더이상 사용하지 않으면 레퍼런스 관계(이미지에서 빨간 화살표)가 사라지고 GC가 obj를 제거함
그럼 메모리의 해당 공간을 다른 용도로 사용할 수 있게된다.
2. 레퍼런스(가리킨다)
생성한 객체의 주소를 변수에 저장하는 것
3. 자료형이 같아도 다른 객체
자료형이 같아도 다른 공간에 존재하는 객체는 다른 객체이다.
4. null과 NullPointException
레퍼런스에 null 이 저장되면 객체의 연결이 끊기며, 더이상 객체를 이용할 수 없다.
ChildClass child = new ChildClass();
child = null;
new로 생성한 ChildClass 객체에 다시는 접근할 수 없으며,
접근하려하면
java.lang.NullPointerException이 발생한다.
728x90
반응형
'개발자 :-) > Java' 카테고리의 다른 글
[Java] 패키지와 static (0) | 2022.09.02 |
---|---|
[Java] 생성자와 소멸자 그리고 this (1) | 2022.09.02 |
[Java] 메서드 (0) | 2022.09.02 |
[Java] 클래스 제작과 객체 생성 (0) | 2022.09.02 |
[Java] Queue *큐 기본 문법 (0) | 2022.08.29 |
댓글