类是在 第一次new的时候加载进方法区中的 ,且只加载一次
测试:
public class Day5_Demp1 {
public static void main(String[] args) {
m1 m ;
new m1();
new m1();
}
}
class m1 {
static {
System.out.println("静态");
}
{
System.out.println("构造");
}
}
引出问题:
Java回收方法区中回收的类:
回收的类必须满足下面三个条件才能算是“无用的类”
1、该类所有的实例都已经被回收,也就是说Java堆中不存在该类的任何实例;
2、加载该类的ClassLoader已经被回收;
3、该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。
本文探讨了Java中类的加载时机,即在首次new操作时加载至方法区,并且只会加载一次。同时,深入讨论了Java回收方法区中类的条件,包括所有实例被回收、加载类的ClassLoader被回收及Class对象未被引用。
5万+

被折叠的 条评论
为什么被折叠?



