2015-07-30 2 views
1

У меня есть следующий код:Использования слабых ссылок в приложении Java EE

Object obj = new Object(); 
ThreadLocal<Object> threadLocal = new ThreadLocal<Object>(); 
WeakReference<Object> weakReference = new WeakReference<Object>(obj); 
threadLocal.set(obj); 

Мой вопрос заключается в том, что в приложении Java EE, когда мы используем слабые ссылки, есть ли необходимость явного вызова ThreadLocal.remove() метод?

ответ

0

Если вы не вызвали удаление, то ThreadLocal будет поддерживать ссылку на WeakReference, но это не помешает obj быть собранным мусором.

+1

Прочтите эту статью: https://gist.github.com/chrisvest/32c691e51f891a35a1ca. По моему пониманию, нет необходимости явно ссылаться на метод ThreadLocal.remove(). –

+0

@vikash Ваш тест подтверждает то, что я написал. –

+0

получил это ... Спасибо .. –