JDK1.7开始提供的动态语言支持(比如java可以调用js语言):java.lang.invoke.MethodHandle实例的解析结果REF_getStatic,REF_putStatic,REF_invokeStatic句柄对应的类没有被初始化,则初始化
被动使用:
除了上面的7种情况,其他使用java类的方式都被看做是对类的被动使用,都不会导致类的(初始化,但并不意味着类不进行加载和连接)所有的java虚拟机的实现必须在每个类或接口被java程序(首次主动)使用时才初始化他们
11、什么时候类会被卸载?
当一个类经历被加载、链接、初始化三个步骤后它的生命周期就开始了。当该类初始化生成的对象不在被引用的时候,Class对象就会结束生命周期。该类在方法区内的数据也会被卸载,从而该类的生命周期就结束了。所以一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期(即没有被引用)
12、什么是类的命名空间?
类的命名空间是由类的名称以及类的加载器和加载器的所有父级别的加载器一起构成的
13、类加载器之间的关系
加载器顺序:用户自定义加载 -> 系统类加载器 -> 扩展类加载器 -> 根加载器
更多的类加载的详情我整理了一份jvm的类加载的知识点如下图(需要的请留言)