java references
EditPlugging memory leaks with soft references
WeakReference<User> ref = new WeakReference<User>(new User());
User user = ref.get();
- Weak은 GC될 때마다 회수. LRU cache에 유리.
- Soft는 사용빈도 등을 감안하여서 GC여부가 결정. 메모리 사용량이 늘어나고, 결과적으로 GC를 더 자주 일어나게 함.
-XX:SoftRefLRUPolicyMSPerMB=<N>옵션으로 조정가능.- Phantom은 반드시 ReferecneQueue를 사용해야.
- PhantomReference를 쓰면 객체가 finalize된 이후에 사용자 코드가 관여할 수 있다.
Strong > Soft > Weak > Phantom