java类加载器的分类

  • 更新时间:2021-06-17 10:55:16
  • 编辑:勾小芬
为找教程的网友们整理了相关的编程文章,网友丁和蔼根据主题投稿了本篇教程内容,涉及到java相关内容,已被326网友关注,内容中涉及的知识点可以在下方直接下载获取。

参考资料

正文内容

《java类加载器的分类》是一篇值得学习的技术文章,知识点总结的很细,重新排版了一下发到这里,为了大家阅读方便。

java类加载器的分类

1、分类

(1)引导类加载器

用C++编写的,是JVM自带的类加载器,负责Java平台核心库,用来加载核心类库。构造ExtClassLoader和AppClassLoader,该加载器无法直接获取

Java平台核心库:jre\lib\rt.jar,用压缩软件打开,里面的类就是我们平时要学的。这个jre是公共jre,并非jdk目录下的专用jre

(2)拓展类加载器

负责jre\lib\ext目录下的jar包或-D java.ext.dirs指定目录下的jar包装入工作库

此处jre也是公共jre

(3)系统类加载器

负责java -classpath或-D java.class.path所指的目录下的类与jar包装入工作,是最常用的加载器

2、实例

package com.volcano.reflection;
 
public class TestReflection4 {
    public static void main(String[] args) {
        //获取系统类加载器
        ClassLoader classLoader = ClassLoader.getSystemClassLoader();
        System.out.println(classLoader);
        //获取拓展类加载器
        classLoader = classLoader.getParent();
        System.out.println(classLoader);
        //获取引导类加载器(是直接无法获取的)
        classLoader = classLoader.getParent();
        System.out.println(classLoader);
 
        //测试当前类是由哪个类加载器加载的——引导类加载器
        System.out.println(TestReflection4.class.getClassLoader());
        //测试JDK内置的类是由哪个类加载器加载的——系统类加载器null
        System.out.println(Object.class.getClassLoader());
 
        //如何获得系统类加载器的加载的类的路径
        System.out.println(System.getProperty("java.class.path"));
        /*之前用过的commons-io和自己写的类也在其中
        * E:\JDK\jre\lib\charsets.jar;
        * E:\JDK\jre\lib\deploy.jar;
        * E:\JDK\jre\lib\ext\access-bridge-64.jar;
        * E:\JDK\jre\lib\ext\cldrdata.jar;
        * E:\JDK\jre\lib\ext\dnsns.jar;
        * E:\JDK\jre\lib\ext\jaccess.jar;
        * E:\JDK\jre\lib\ext\jfxrt.jar;
        * E:\JDK\jre\lib\ext\localedata.jar;
        * E:\JDK\jre\lib\ext\nashorn
        * .jar;E:\JDK\jre\lib\ext\sunec.jar;
        * E:\JDK\jre\lib\ext\sunjce_provider.jar;
        * E:\JDK\jre\lib\ext\sunmscapi.jar;
        * E:\JDK\jre\lib\ext\sunpkcs11
        * .jar;E:\JDK\jre\lib\ext\zipfs.jar;
        * E:\JDK\jre\lib\javaws.jar;
        * E:\JDK\jre\lib\jce.jar;
        * E:\JDK\jre\lib\jfr.jar;
        * E:\JDK\jre\lib\jfxswt.jar;
        * E:\JDK\jre\lib\jsse.jar;
        * E:\JDK\jre\lib\management-agent.jar;
        * E:\JDK\jre\lib\plugin.jar;
        * E:\JDK\jre\lib\resources.jar;
        * E:\JDK\jre\lib\rt.jar;
        * F:\云\Code\JavaSE\out\production\基础语法;
        * F:\云\Code\JavaSE\基础语法\src\com\lib\commons-io-2.6.jar;
        * D:\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar
 
         * */
    }
}

以上就是java类加载器的分类,希望对大家有所帮助。Java基础

相关教程

  • JAVA解析XML字符串简单方法代码案例

    这篇文章主要介绍了JAVA解析XML字符串简单方法代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    发布时间:2021-05-02

  • 2020年Java软件工程师就业前景会如何

    Java软件工程师就业前景如何是许多软件工程师都困惑的问题,他们有的时候甚至不知道自己选择的行业是否正确,为了帮助许多Java软件工程师走出困境,下面就是专门针对Java软件工程师就业前景进行详细的解析,在了解了相关的情况下,不知道你否还会坚持在软件工程师的行业中继续发展。

    发布时间:2021-06-06

用户留言