Когда загрузчик классов собирает мусор, загруженные им классы выгружаются?
Когда JVM работает в подробном режиме, все загруженные классы o / p. Точно так же будет журнал JVM, когда он выгружает класс?
Я написал собственный загрузчик классов, чтобы проверить это, но не смог увидеть подробный журнал для выгрузки классов.
CustomClassLoader loader = new CustomClassLoader(new URL[]{}, CustomClassLoader.class.getClassLoader());
loader.addURL("D:\\workspace\\ClassLoaderTest\\implementation.jar");
Class c = null;
try {
c = Class.forName("Horse",false,loader);
if (c != null) {
try {
Animal animal = (Animal)c.newInstance();
animal.eat();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}
catch(Exception e) {
e.printStackTrace();
}
c = null;
loader = null;
byte[] b = new byte[58*1024*1024];
System.gc();
ClassLoadingMXBean clBean = ManagementFactory.getClassLoadingMXBean();
System.out.println("Number of classes currently loaded " + clBean.getLoadedClassCount());
System.out.println("Number of classes loaded totally " + clBean.getTotalLoadedClassCount());
System.out.println("Number of classes unloaded " + clBean.getUnloadedClassCount());
Даже ClassLoadingMXBean дает число выгруженных классов как 0.
Как я могу узнать, что класс выгружается, когда загрузчик классов GCed?