В этой связи hereЛи ThreadLocal переменного должен быть статическими, чтобы представлять утечку памяти
Они описывают утечки памяти при использовании загрузчика классов. Теперь этот комментарий:
Классный загрузчик будет удален сборщиком мусора, только если на него не ссылаются. Все классы содержат ссылку на свой загрузчик классов, и все объекты содержат ссылки на их классы. В результате, если приложение выгружается, но один из его объектов все еще удерживается (например, кешем или локальной переменной), базовый загрузчик классов не может быть удален сборщиком мусора!
Я понимаю несколько. Но в той части, когда они говорят:
(например, кэш или ThreadLocal переменной)
Я правильно сказать, что кэшем они означают статические ссылки и ThreadLocal, они означают нестационарную переменную потока. Я говорю об этом, потому что все объяснения кода утечек потоковой памяти делают переменную threadlocal статичной. Например, этот вопрос in SO
Другой вопрос с комментарием о кеше: статическая переменная будет GC-ed, когда приложение будет работать, так почему это проблема?
Не возражаете ли вы пометить это как Java или ваш вопрос будет сохранен для других GC, например .Net? – rene