编译的时候是将.java文件编译成.class文件,程序在运行的时候,系统会把.class文件加载到内存中,当系统要使用某个类时,如果该类还没有加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。
加载:就是指将.class文件读入内存,并为之创建一个Class对象,任何类被使用时,系统都会建立一个唯一的Class对象。(Class类就是描述.class文件的)
什么时候加载类?
创建类的实例
访问类的静态变量,或者为静态变量赋值
调用类的静态方法
使用反射方式来强制创建某个类或者接口对应的java.lang.Class对象
初始化某个类的子类
直接使用java.exe命令运行某个主类