第一个阶段(源代码阶段):
先从java文件按成员变量,构造方法,成员方法通过javac编译成class文件。如上图Person.java-->Person.class
第二个阶段(Class类对象阶段):
通过类加载器把class文件中的成员变量,构造方法,成员方法加载到内存中。
第三个阶段(Runtime运行时阶段):
该阶段就可以创建对象和调用对象里的方法了。
静态加载:在编译时就加载相关的类,加载完成后会出现一个xxx.class的文件
例如:在一个switch中 1-->new一个对象 2-->利用反射(Class.forName())
如果代码中不提供相关的类定义,那么1情况下,在编译时就报错
在2情况下则编译能通过,但是当运行需要使用到该类时,才会报错