본문 바로가기

자바

자바 가비지 컬렉터란? 무엇일까 이야기 만들어봤지 왜 있는데?

먼저 가비지 컬렉터에 관해서 결론부터 말하고 들어가자면


가비지 컬렉터(Garbage Collector)는 자바에서 메모리를 관리하고 메모리 누수를 방지

 

 

근데 멀 어떻게 메모리를 관리하고 메모리 누수를 방지를 할까?

나는 그런 코드를 작성한 적이 없는데....

 

 

보통 c나 c++을 배웠을 때

malloc()

free()

 위 와같은 함수를 이용하여 메모리를 할당학고 해제 하는 작업을 진행했다

즉 개발자가 직접 메모리를 할당하고 해제해야 한다

 

 

근데 자바는 어떻게 관리를 하는거지?

아무리 메모리 사용을 줄이는 작업을 한다해서 모든

객체를 효율적으로 관리하기에는 

너무 힘든 작업이다..

 

 

간단히 말하면, 자바의 가비지 컬렉터는 프로그램에서 사용하지 않는 메모리를 자동으로 정리해주는 친구라고 생각하시면 된다.이를 통해 개발자들은 메모리 관리에 대한 걱정을 덜고 더욱 편리하게 프로그래밍을 할 수 있다

 

위와 같이 더 이상 사용하지 않은 객체에서 가비지 컬렉터를 호출하면 메모리에서 해체 되는 작업이다.

위 코드는 System.gc()로 직접 가비지 컬렉터를 호출하였지만

실제로는 저러한 작업이 시스템의 성능에 매우 큰 영향을 끼친다.

그래서 가비지 컬렉터가 작동할지 여부와 시점은 JVM에 의존적이다

저렇게 null 값이 매핑 되면 어떠한 객체도 참조 하지 않는다고 생각하여 가비지 컬렉터가 동작한다. 

 

 

1. 사용되지 않는 객체를 식별하고 표시

                  2.사용되지 않는 객체들을실제로 메모리에서 제거

 

 

 

프로그램이 동작하는 동안에는 계속해서 메모리를 사용하고 해제하는 일이 반복되는데

이 과정에서 사용하지 않는 메모리를 정리하는 것이 가비지 컬렉터의 역할!!!


 

 

 

 






'자바' 카테고리의 다른 글

자바의 제네릭이란? 잊고 있었던 사람 손~!  (1) 2025.12.02
함수형 인터페이스  (3) 2024.01.11
람다식  (1) 2024.01.11