본문 바로가기
Backend - Java Spring/JAVA_강의

[JAVA] Null과 가비지 컬렉션의 원리

by VictorMeredith 2023. 6. 7.

JAVA

1. Null 

Java에서 null은 어떤 참조 변수가 아무런 객체도 가리키지 않음을 나타냅니다.

즉, null은 "참조 없음"을 의미합니다. 이것은 참조 변수가 메모리의 어떤 위치도 가리키지 않게 하기 위한 특별한 값입니다.

Object obj = null;

위의 코드에서 obj는 null로 초기화되었으므로 아무런 객체도 가리키지 않습니다.

이렇게 되면 obj를 통해 객체의 메소드를 호출하거나 멤버 변수에 접근하려고 시도하면 NullPointerException이 발생합니다.

 

2. 가비지컬렉션

Java에서는 가비지 컬렉터라는 시스템이 동작하여 더 이상 사용되지 않는 메모리를 자동으로 회수합니다.

이를 가비지 컬렉션(garbage collection)이라고 합니다.


가비지 컬렉션의 원리를 이해하기 위해서는 먼저 가비지(garbage)의 개념을 알아야 합니다. 

가비지는 프로그램에서 더 이상 사용되지 않는 메모리를 차지하는 객체를 가리킵니다. 

가비지 컬렉터는 이런 가비지를 찾아내어 메모리를 회수하고, 이 메모리를 다시 사용할 수 있도록 해줍니다.
Java에서는 참조가 더 이상 없는 객체를 가비지로 간주합니다. 즉, 어떤 객체를 가리키는 참조 변수가 없다면 그 객체는 가비지입니다.

Object obj = new Object(); // 새로운 Object 객체 생성
obj = null; // obj 참조 제거

위의 코드에서 new Object()로 생성된 객체는 obj 변수에 의해 참조되었습니다.

그러나 obj = null; 구문을 통해 obj가 더 이상 객체를 참조하지 않게 되었습니다.

이 시점에서 new Object()로 생성된 객체를 가리키는 참조가 없으므로 이 객체는 가비지가 됩니다.

Java의 가비지 컬렉터는 이런 가비지를 찾아내어 메모리를 회수합니다. 

이 과정은 프로그램이 실행되는 동안 주기적으로 이루어집니다.

 

'Backend - Java Spring > JAVA_강의' 카테고리의 다른 글

[JAVA얄코] 문자 자료형  (0) 2023.10.07
[JAVA얄코] 실수 자료형들  (0) 2023.10.07
[JAVA얄코] 정수 자료형과 연산자  (0) 2023.10.07
[JAVA얄코] 자료형과 변수  (0) 2023.10.07
[JAVA얄코] Java 시작  (0) 2023.10.07

댓글