java JVM为什么要3个类加载器?
浏览量:2654
时间:2021-04-10 01:36:36
作者:admin
JVM为什么要3个类加载器?
JVM有三种加载程序:bootstrap负责加载系统类,extclassloader负责加载扩展类,appclassloader负责加载应用程序类。他们主要负责不同领域的工作,同时也负责授权模式的实施。实际上,当不需要添加父类来搜索路径时,需要使用加载程序来查找路径。
执行Java*时。班级,java.exe文件将帮助我们找到JRE,然后找到jvm.dll这是真正的Java虚拟机。最后,加载动态库并激活Java虚拟机。在虚拟机被激活之后,它将执行一些初始化操作,例如读取系统参数。初始化完成后,将生成第一个类装入器——引导装入器。Bootstrap loader是由C语言编写的,在Bootstrap loader的初始工作中,除了一些基本的初始化操作外,最重要的是加载启动器.java并将其父加载程序设置为null,这意味着父加载程序是引导加载程序。然后引导加载程序要求再次加载启动器.java并将其父级设置为之前生成的extclassloader实体。这两个加载程序都以静态类的形式存在。需要注意的是,launcher$ExtClassLoader.class类带启动器$AppClassLoader.class类它们都是由引导加载程序加载的,所以父级与要加载的类加载程序无关。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。
下一篇
双陈cp 双红cp