类加载器的分类和作用 - 日理万妓 2023-10-14 21:42 37阅读 0赞 ## 类加载器的作用时间段 ## * 在类的加载过程中,分为三大阶段:加载,链接,初始化。在类被进行连接之前,需要将对应的类加载成为jvm可以识别的class文件。 * 类加载器的作用就是用来把类(.class)装载到内存中。 ## 类加载器的类型(jvm中) ## * 系统类加载器:最底层的加载器,负责java-classpath或者-Djava.class.path所指目录下的类和jar包的装入工作,是最常用的加载器。简单来说;系统加载器就是加载一些自己所编写的类和jar包中的依赖的加载器。 * 拓展类加载器:系统类加载器的父类加载器, * 引导类加载器:拓展类加载器的父类加载器,也称为跟加载器,使用C/C++编写,在java环境中无法查看,查看时只会返回null。是java平台的核心库,JDK中的内置类就是由引导类加载亲加载。 ### 获取三大类加载器 ### #### 获取系统加载器 #### //获取系统类加载器 ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); #### 获取拓展类加载器 #### //获取拓展类加载亲:系统类加载器的父类 ClassLoader parent = systemClassLoader.getParent(); #### 获取根加载器 #### //获取跟加载器:拓展类的父类=》由C/C++编写,java环境无法读取 ClassLoader parent1 = parent.getParent(); #### 查看当前类的加载器 #### //查看当前类由哪个加载器加载=》通过反射测试 Class aClass = Class.forName("com.reflection.GetLoader"); ClassLoader classLoader = aClass.getClassLoader(); System.out.println("当前类的类加载器是"+classLoader); #### 查看JDK的内置类的加载器 #### //测试JDK的内置类是由哪个加载器加载=》根加载器 ClassLoader classLoader1 = Class.forName("java.lang.Object").getClassLoader(); System.out.println("JDK的内置类的加载器是:"+classLoader1); #### 获取系统加载器可以加载的路径 #### //获取系统加载器可以加载的路径 System.out.println(System.getProperty("java.class.path")); ### 补充:双亲委派机制:确保安全性 ### * 双亲委派机制:当自己定义一个包时,加载器会一级一级(系统加载器->拓展加载器->根加载器)往上寻找,查看自定义的包名是否已经被加载,若已经被加载了则该包不在被加载。 #### 官方一点的解释:我看不太懂那种 #### * 双亲委派机制,的确是防止同名包、类与 jdk 中的相冲突,实际上加载类的时候,先通知 appLoader,看 appLoader 是否已经缓存,没有的话,appLoader 又委派给他的父类加载器(extLoader)询问,看他是不是能已经缓存加载,没有的话,extLoader 又委派他的父类加载器(bootstrapLoader)询问,BootstrapLoader看是不是自己已缓存或者能加载的,有就加载,没有再返回 extLoader,extLoader 能加载就加载,不能的话再返回给 appLoader 加载,再返回的路中,谁能加载,加载的同时也加缓存里。正是由于不停的找自己父级,所以才有 Parents 加载机制,翻译过来叫 双亲委派机制。
相关 理解Java中类加载器的作用和问题 在Java语言中,类加载器(ClassLoader)是实现Java类加载的关键角色。它的主要作用包括: 1. **资源查找**:类加载器会根据类的全名(包括包名)在JDK的类 墨蓝/ 2024年09月10日 04:27/ 0 赞/ 57 阅读
相关 Java 类加载和类加载器的问题 类加载 -------------------- Java 的类加载阶段分为:加载、链接、初始化,而链接的过程中包括:验证、准备、解析 加载 将类的字节码载入方 - 日理万妓/ 2024年03月22日 10:26/ 0 赞/ 117 阅读
相关 类加载器的分类和作用 类加载器的作用时间段 在类的加载过程中,分为三大阶段:加载,链接,初始化。在类被进行连接之前,需要将对应的类加载成为jvm可以识别的class文件。 类加载器 - 日理万妓/ 2023年10月14日 21:42/ 0 赞/ 38 阅读
相关 自定义类加载器(自定义类加载器的作用) java自定义classloader在加载jar包和classes的时候,classloader不能找到classpath下的配置文件 设我们有一个hello.jar文件 ╰+攻爆jí腚メ/ 2023年09月23日 18:51/ 0 赞/ 178 阅读
相关 类的加载器分类 一 点睛 JVM支持两种类型的类加载器,分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader 阳光穿透心脏的1/2处/ 2022年09月06日 00:10/ 0 赞/ 144 阅读
相关 类加载机制(类加载过程和类加载器) 一、为什么要使用类加载器? Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如: 逃离我推掉我的手/ 2022年08月22日 00:26/ 0 赞/ 378 阅读
相关 反射_类加载器的概述和分类 类加载器 负责将.class文件加载到内在中,并为之生成对应的Class对象。 虽然我们不需要关心类加载机制,但是了解这个机制我们就能更好的理解程序 红太狼/ 2022年06月17日 02:20/ 0 赞/ 181 阅读
相关 类加载器和类加载机制 一 点睛 1 类加载器负责将.class文件(可能在磁盘上,也可能在网络上)加载到内存中,并为之生成对应的java.lang.Class对象。 2 当JVM启动时,会形成由 冷不防/ 2021年09月29日 08:10/ 0 赞/ 528 阅读
相关 类的加载器分类 一 点睛 JVM支持两种类型的类加载器 。分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoade 我会带着你远行/ 2021年07月24日 21:27/ 0 赞/ 348 阅读
还没有评论,来说两句吧...