프로그래밍 TIP/JAVA

강한 참조, 약한 참조 그 외

여름나라겨울이야기 2016. 2. 17. 22:20
728x90

* Strong Reference: 사랑


GC: 객체야! 너를 사랑(강한 참조)해주는 사람(들)이 있느냐?

객체: 예! 저를 사랑해주는 사람(들)이 있습니다.

GC: 너는 heap에서 더 놀거라.


객체의 직접 화법: 저를 참조하는 변수 중에는 강한 참조가(들이) 있습니다.


* Soft Reference: 썸


GC: 객체야! 너를 사랑(강한 참조)해주는 사람은 없고, 그럼 너를 좋아해주는(썸 - 소프트 참조) 사람(들)은 있느냐?

객체: 예! 저를 좋아해주는 사람(들)이 있습니다.

GC: 내가 청소하고도 공간이 부족하다면 너도 쓰레기통에 넣어버리겠다. 하지만 청소 후에 충분한 공간이 나온다면 너는 heap에서 더 놀거라.


객체의 직접 화법: 저를 참조하는 변수 중에는 강한 참조는 없고 소프트 참조는 있습니다.


* Weak Reference: 친구


GC: 객체야! 너를 사랑해주는 사람도 없고, 너를 좋아해주는 사람도 없다는 거냐?

객쳬: 예! 없습니다. 하지만 저는 친구(약한 참조)가(들이) 있습니다.

GC: 친구 필요없다. 내가 청소할 때 넌 그냥 쓰레기통에 들어가거라.


객체의 직접 화법: 저를 참조하는 변수 중에는 강한 참조도 없고, 소프트 참조도 없고, 약한 참조가(들이) 있습니다.


* Phantom Reference : 웬수


GC: 좀 있다 heap 청소나 해야 겠다.

객체: 사랑해 주는 사람도, 좋아해 주는 사람도, 친구도 없고 웬수(들)뿐이니.. GC 온다는 핑계로 그 전에 내가 쓰레기통으로 자진해서 들어 가리라.


객체의 직접 화법: 나를 참조하는 변수 중에는 강한 참조도, 소프트 참조도, 약한 참조도 없고 유령 참조뿐이니 GC 오기 전에 그냥 자진 납세해야 헸다.


같이 보면 좋은 김용환님 블러그 아티클


http://knight76.tistory.com/entry/SofreReference-WeakReference-PhantomReference


Nvare O2 - Java Reference와 GC


http://d2.naver.com/helloworld/329631

반응형