По сути, как уже указывал @invariant, разыменование всех классов, загружаемых определенным загрузчиком классов, должно сделать сборщик мусора этим загрузчиком классов. Однако есть (по крайней мере) одно исключение: если класс сериализован, то на этот класс (и, следовательно, на его загрузчик классов) внутренне ссылаются ObjectStreamClass
, который является первичным классом и поэтому никогда не собирается сборщиком мусора. Поэтому в этом случае загрузчик классов также не может быть подвергнут сборке мусора до тех пор, пока не завершится вся JVM.
См. Полное объяснение здесь , в разделе «Проблемы, связанные со сборкой и сериализацией мусора».