JJ's blog

WeakReference, SoftReference, StrongReference 본문

Technology/Android

WeakReference, SoftReference, StrongReference

Jayden_Ji 2017. 11. 10. 16:24

 WeakReference, SoftReference, StrongReference


GC가 메모리를 확보하게 위해 쓰레기 취급 하는 동급 형태

WeakReference > SoftReference > StrongReferece



1. WeakReference

 - GC가 언제든지 쓰레기 취급 할 수 있는 Reference : 따라서 메모리 처리에 크게 신경 쓸 필요가 없다.

 - new WeakReference(new Object()); 형태


2. SoftReference

 - GC가 메모리가 부족(OutOfMemory 상태 가기 직전) 일 경우, 쓰레기 취급 해버리는 Reference.

 - new SoftReference(new Object()); 형태


3. StrongReference

 - GC가 처리 하지 않는 Reference : null 처리로 GC에 알려주는게 메모리 누수에 좋다.

 - new Object(); 형태


4. 기타

 - WeakReference에 StrongReference를 지정할 경우

   : WeakReference weakRef = new WeakReference(new Object()); 

     이렇게 생성 하고 나서 Object obj = weakRef.get(); 을 할 경우, obj는 StrongReference로 참조 된다.

     그래서 obj가 null 이 될때까지 GC가 쓰레기 취급을 하지 않게 된다.

     하지만, weakRef.get()하지 않을 경우에는 StrongReference가 아닌 WeakReference로 취급 되어

     GC가 쓰레기 취급을 하게 된다.






##참조

http://dlucky.tistory.com/216

http://itmining.tistory.com/10

http://aroundck.tistory.com/477


출처: http://gogorchg.tistory.com/entry/Java-WeakReference-SoftReferernce-StrongReference [항상 초심으로]

'Technology > Android' 카테고리의 다른 글

[Kotlin] 코틀린이란..  (0) 2021.03.29
SDK 구버전으로 다운받기  (0) 2017.12.19
[Android] API Level  (0) 2017.09.09
[Android] Activity onUserInteraction()  (0) 2017.09.08
ConcurrentModificationException  (0) 2017.02.17
Comments