加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

最新版JDK15的JVM类加载器说明

发布时间:2021-06-03 11:51:12 所属栏目:编程 来源:互联网
导读:1 类加载器 在类加载器家属中存在着相同人类社会的权利品级制度: 1.1 Bootstrap 由C/C++实现,启动类加载器,属最高层,JVM启动时建设,凡是由与os相干的当地代

必要留意的是,Bootstrap ClassLoader伶俐加载特命名称的类库,好比rt.jar.这意味我们自界说的jar扔到jrelib也不会被加载.

认真将/jre/lib或- Xbootclasspath参数指定的路径中的,且是假造机识此外类库加载到内存中(凭证名字辨认,好比rt.jar,对付不能识此外文件不予装载),好比:

Object

System

String

Java运行时的rt.jar等jar包

体系属性sun.boot.class.path指定的目次中特命名称的jar包

在JVM启动时,通过Bootstrap ClassLoader加载rt.jar,并初始化sun.misc.Launcher从而建设Extension ClassLoader和Application ClassLoader的实例。

查察Bootstrap ClassLoader到底初始化了那些类库:

URL[] urLs = Launcher.getBootstrapClassPath().getURLs(); 

       for (URL urL : urLs) { 

           System.out.println(urL.toExternalForm()); 

       } 

JDK9 后

认真加载启动时的基本模块类,好比:

java.base

java.management

java.xml

1.2 Platform ClassLoader

JDK8 时Extension ClassLoader

只有一个实例,由sun.misc.Launcher$ExtClassLoader实现:

认真加载libext或java.ext.dirs体系变量指定的路径中的全部类库

加载一些扩展的体系类,好比XML、加密、压缩相干的成果类等

JDK9时替代为平台类加载器

加载一些平台相干的模块,好比java.scripting、java.compiler*、 java.corba*。

那为何 9 时清扫替代了呢?

JDK8 的首要加载 jre lib 的ext,扩展 jar 包时行使,这样操纵并不保举,以是清扫。而 JDK9 有了模块化,更无需这种扩展加载器。

1.3 Application ClassLoader

只有一个实例,由sun.misc.Launcher$AppClassLoader实现。

JDK8 时

认真加载体系情形变量ClassPath可能体系属性java.class.path指定目次下的全部类库。

假如应用措施中没有界说本身的加载器,则该加载器也就是默认的类加载器。该加载器可以通过java.lang.ClassLoader.getSystemClassLoader获取。

JDK9 后

应用措施类加载器,用于加载应用级此外模块,好比:

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读