본문 바로가기
개발자 :-)/Java

[Java] 객체와 메모리

by 뚜생첨 2022. 9. 2.

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

댓글