-
자바 참조 유형 (Strong, Soft, Weak, Phantom Reference)Java & Spring/자바 2021. 2. 28. 22:54반응형
자바 참조 유형
-
강한 참조(Strong Reference)
-
일반적으로 new를 통해서 객체를 생성하게 되면 생기게 되는 참조.
-
강한 참조를 통해 참조되고 있는 객체는 가비지 컬렉션의 대상에서 제외된다.
-
-
소프트 참조(Soft Reference)
-
java.lang.ref.SoftReference
-
객체를 참조하는 경우가 SoftReference 객체만 존재하면, GC의 대상이 됨
-
일반적으로는 메모리 여유에 따라 GC의 대상 여부가 결정
-
메모리 여유가 충분하면 GC가 수행되더라도 수거되지 않는다.
-
JVM의 메모리가 부족하다면(Out Of Memory에 가깝다면) 힙 영역에서 제거된다.
-
-
약한 참조(Weak Reference)
-
java.lang.ref.WeakReference
-
GC가 발생하면 무조건 수거됨
-
GC의 실행주기와 수거 시점이 일치하며, 짧은 주기에 자주 사용되는 객체를 캐시할 때 유용
-
-
팬텀 참조(Phantom Reference)
-
java.lang.ref.PhantomReference
-
생성자에서 무조건 ReferenceQueue를 받음
-
GC가 실행되기 이전(finalize() 호출 후) PhantomReference는 객체 내부 참조를 phantomly reachable 객체로 만든 후, queue에 입력됨
-
Reference
반응형'Java & Spring > 자바' 카테고리의 다른 글
Checked Exception vs Unchecked Exception (0) 2021.02.28 String vs (StringBuilder vs StringBuffer) (JAVA) (0) 2020.10.20 Final 키워드 (JAVA) (0) 2020.10.20 동기화(Synchronized) (0) 2020.10.20 Annotation(어노테이션) (0) 2020.10.20 -