Пример утечки памяти в реальном времени до JDK 1.7
Предположим, вы читаете файл из 1000 строк текста и сохраняете в объекте String
String fileText = 1000 characters from file
fileText = fileText.subString(900, fileText.length());
В приведенном выше коде я изначально прочитал 1000char, а затем сделал подстроку, чтобы получить только 100 последних символов.Теперь fileText должен ссылаться только на 100 символов, а все остальные символы должны собирать мусор, поскольку я потерял ссылку, но до того, как функция подстроки JDK 1.7 косвенно ссылается на исходную строку из последних 100 символов, она предотвращает сбор всей строки из мусора, и целые 1000 символов будут тамв памяти, пока вы не потеряете ссылку на подстроку.
вы можете создать пример утечки памяти, как указано выше