首先举个例子
public class Test {
public static void main(String[] args) {
Son son = new Son();
Son son1 = new Son();
System.out.println("end");
}
}
Son类中的构造器大家就随便写。很好奇为什么我会写这样一份代码。
在第三行和第四行分别打上断点,然后在idea中使用force step into,看看在两个new的时候会发生什么情况。
在运行第一个new的时候,会调用ClassLoader,而运行第二个new直接进入了Son的构造方法。为什么?
这就是类加载。
当一个类没有被加载过,也就是在jvm内存中没有这个类的java.lang.Class对象,那么就会执行类加载。类加载的过程是什么暂时就不写了,网上很多大佬写的比较好,大家可以参考这篇文章
未完待续~