类加载器的作用
1)通过一个类的全限定名来获取定义此类的二进制字节流。
2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3)在内存中生成一个代表这个类的java.lang.Class对象,这个对象存放在方法区中。这个对象将作为程序访问方法区中的这些数据的外部接口。
类加载器的层次结构
类加载器的结构如上所示,这里父加载器并不是通过继承关系来实现的,而是采用组合实现的,也就是说,虽然是父加载器,但并不是java中的extends。文章来源:https://www.toymoban.com/news/detail-621327.html
从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器( Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分,另一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全都继承自抽象类java.lang.ClassLoader。文章来源地址https://www.toymoban.com/news/detail-621327.html
- 启动类加载器(Bootstrap ClassLoader):C++实现,在java里无法获取,负责加载<JAVA_HOME>/lib下的类(比如object、string、list等类全部都在这里)。
- 扩展类加载器(Extension ClassLoader): Java实现,可以在java里获
到了这里,关于JVM类加载器的作用和层次结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!