본문 바로가기

JAVA

Reference 와 Garbage Collection

반응형

Reference Object에서 알아보기 위해서 가비지에 대해서 빠르게 짚고 넘어가겠습니다.

 

가비지 컬렉터
힙 내의 객체중에 가비지를 찾아내 메모리 힙의 메모리 회수를 수행한다.
JDK 1.2 부터는 java.lang.ref 패키지를 추가해 사용자 코드와 GC가 상호작용할 수 있게 하고 있다.

가비지 컬렉터 작동원리를 깊게 알고 싶다면 아래 사이트를 보는게 도움이 될 것 같습니다.

java.lang.ref 패키지 안 객체 참조 방식

  • Strong Reference
    일반적으로 new를 이용해 생성된 객체로 GC에 무조건 제외된다.
  • Soft Reference
    GC가 메모리가 부족하다고 판단할 때 수거하는 객체, 자주 사용할 수록 수거될 확률이 적어짐
  • Weak Reference
    GC가 실행되면 무조건 수거하는 객체
  • Phantom Reference
    finalize() 메소드 대용으로 사용하는 것, object가 부활될 수 있기 때문에 좀 더 안전하다. 사용시 ReferenceQueue 사용은 필수

사용방법

//StrongReference 타입
SampleObject strong = new SampleObject();
//WeakReference 타입
WeekReference<SampleObject> weak = new WeakReference<>(new SampleObject);

 

참고 사이트

반응형

'JAVA' 카테고리의 다른 글

[리팩토링] 분류코드를 클래스로 치환  (0) 2021.03.21
Java의 Future이란  (0) 2021.01.03
일급컬렉션  (0) 2020.07.06
Java의 배열  (0) 2020.05.18
Enum에 대해서  (0) 2020.05.17