class文件的加载时机:
1 遇到 new、getstatic、putstatic、或invokestatic这四条字节码指令
2 使用 java.lang.reflect 包的方法对类进行反射调用的时候
3 初始化类时,父类没有被初始化,先初始化父类
4 虚拟机启动时,用户指定的主类(包含main()的那个类)
5 当使用JDK1.7动态语言支持的时,如果一个java.lang.invoke.MethodHandle 实例最后解析的结果REF_getStatic、REF_putStatic、REF_invokeStatic的方法句柄,并且这个方法句柄锁对应的类没有进行过初始化时