• 技术文章 >Java >java教程

    Java类加载器的使用及分类

    WBOYWBOY2023-04-26 08:19:06转载21

    分类

    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包装入工作,是最常用的加载器

    实例

    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类加载器的使用及分类的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:亿速云,如有侵犯,请联系admin@php.cn删除
    专题推荐:Java
    上一篇:如何在Linux系统上搭建Java Web项目运行环境? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java字节码执行的两种方式是什么• java反射如何调用方法• Java函数式编程实例分析• Java中RandomAccessFile类怎么随机访问• Java线程池Executor怎么使用
    1/1

    PHP中文网