深入理解JVM虚拟机-3

蓝咒 提交于 2020-02-21 10:06:00

ClassLoader源码:

  • 数组类型对应的class类对象,不是由类加载器而加载的,是由JVM运行时加载的;

  • 类加载的双亲委托机制,对于JVM所提供的加载器本质上是一种“包含”关系,每一类加载器里面的构造方法都有一个指向父类加载器的变量;

  • 每个类加载器都有自己的命名空间,命名空间由该加载器及其所有父加载器所加载的类组成;

  • 在同一个命名空间中,不会出现类的完整名字(包括类的包名)相同的两个类,即不会重复加载,在不同的命名空间中,有可能会出现,p,17,18;

类的卸载:

  • 一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期;

  • 由JVM所自带的类的加载器,在虚拟机的生命周期中,始终不会被卸载,虚拟机会始终引用这些类加载器,一个类的实例总是引用代表这个类的实例对象;

  • 由用户自定义的类加载器所加载的类是可以卸载的;

  • 父类加载器无法访问由子类加载器所加载的类,子类加载器可以访问父类加载器所加载的类;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!