加载主类的class文件
Java运行方式有两种:jar方式和class方式。
-
装载:查找和导入class文件;
-
连接:
(1)检查:检查载入的class文件数据的正确性; (2)准备:为类的静态变量分配存储空间; (3)解析:将符号引用转换成直接引用(这一步是可选的)
-
初始化:初始化静态变量,静态代码块。
请参考https://blog.csdn.net/define_us/article/details/52433742
这样的过程在程序调用类的静态成员的时候开始执行,所以静态方法main()才会成为一般程序的入口方法。类的构造器也会引发该动作。
执行main方法
对于其他类
JVM的实现要制造在某个类型“第一次”被“主动使用”时被加载的效果。
“主动使用”包括new、对该类型静态变量的读写、对该类型静态方法的调用,还有反射(如Class.forName()或ClassLoader.loadClass())。
JVM启动后,第一个加载的类一定是Object(Object是Main class的父类)。所以,第一个打开的jar也一定是rt.jar