• 技术文章 >java >java基础

    java类加载器的分类

    小妮浅浅小妮浅浅2021-08-06 10:52:43原创4411

    分类

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

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    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基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java类加载器
    上一篇:java转义字符 下一篇:java类的两种引用方法

    相关文章推荐

    • python怎么调用java类• java类实现日期的时间差• 如何获取java类中的字段修饰符?• java类加载器如何理解?• java类变量是什么?• java类中的两种成员访问• java类加载器的常用方法• java类加载的过程

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网