首页 > Java > java教程 > 正文

Java 9中的类加载器有哪些变化?

WBOY
发布: 2023-08-30 15:37:02
转载
768人浏览过

java 9中的类加载器有哪些变化?

所有java程序都运行在Java虚拟机(JVM)上。编译后,java 类将转换为平台与机器无关的字节码,并且编译后的类存储为.class 文件。每当我们尝试使用它时,ClassLoader都会将该类加载到内存中。当通过名称引用这些类时,这些类就被引入到 Java 环境中。一旦类开始运行,类的加载就由类加载器完成,并且 ma​​in() 方法是启动该类的一种方法。

Java 9 中的类加载器有一些小的变化:

有道小P
有道小P

有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。

有道小P 64
查看详情 有道小P
  • 系统类加载器 在 Java 9 中不再存在,它是 的一个实例>URLClassLoader,而是一个内部类。它是模块中类的默认加载器
  • 扩展类加载器已重命名为平台类加载器。 Java SE 平台中的所有类都可以通过平台类加载器可见,并且 Java 社区进程下的模块中但不属于 Java SE 平台的类也可以通过平台类加载器可见。
  • 应用程序不能依赖于定义哪个平台类的类加载器,Java SE 平台中的某些类是由平台类加载器定义的,而其他类则是由引导类加载器定义的.
  • 如果现有代码创建的类加载器以引导类加载器作为父类加载器,那么我们需要更改为使用平台类加载器作为父类加载器。
  • 平台类加载器不是URLClassLoader的实例,而是一个内部类。
  • 引导类加载器是一个 >JVM的内置类加载器。然而,它定义了关键模块的类,例如基础。使用 -Xbootclasspath/a 部署的应用程序或使用 null 作为父级创建类加载器的应用程序可能需要更改。
  • ul>

    示例

    public class ClassLoaderTest {
       public static void main(String args[]) {
          System.out.println("Class Loader Test");
          ClassLoaderTest test = new ClassLoaderTest();
          try {
             test.showClassLoaders();
          } catch(ClassNotFoundException cnfe) {
             System.out.println(cnfe.getMessage());
          }
       }
       public void showClassLoaders() throws ClassNotFoundException {
          System.out.println("Classloader of this class: " + <strong>ClassLoaderTest.class.</strong><strong>getClassLoader()</strong>);
          System.out.println("Classloader of Permission: " + <strong>java.sql.SQLPermission.class.</strong><strong>getClassLoader()</strong>);
          System.out.println("Classloader of LinkedList: " + <strong>java.util.LinkedList.class.</strong><strong>getClassLoader()</strong>);
          return;
       }
    }
    登录后复制

    输出

    <strong>Class Loader Test
    Classloader of this class: jdk.internal.loader.ClassLoaders$AppClassLoader@504bae78
    Classloader of Permission: jdk.internal.loader.ClassLoaders$PlatformClassLoader@299a06ac
    Classloader of LinkedList: null</strong>
    登录后复制

以上就是Java 9中的类加载器有哪些变化?的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号