| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> java之ClassLoader类加载器 -> 正文阅读 |
|
[Java知识库]java之ClassLoader类加载器 |
1.认识ClassLoader先看一段代码:
结果: 此时会发现结果出现AppClassLoader(应用程序类加载器),PlatformClassLoader(平台类加载器) 那么什么是类加载器,接下来详细介绍一下。 2.类加载器的概念ClassLoader是Java的类加载器,用于把class文件加载到JVM中。 什么是加载 : 加载就是根据类的全限定名(全限定名 : 包名 + 类名)获取到其定义的二进制字节流,并将其加载到内存中. 此时需要借助类加载器来帮助完成 ? 类加载器分为4类 : %JAVA_HOME% : 为JDK设置的环境变量路径. 如环境变量里设置了%java_home%=C:\jdk1.8.0 1. Bootstrap Classloader ? : ? 启动类加载器,用来加载 %JAVA_HOME%/jre/lib 下的, 如 rt.jar中的class文件 或者 xbootclasspath选项指定的jar包 2. Extension Classloader : ? ? 扩展类加载器 , 用来加载 %JAVA_HOME%/jre/ext 中的class文件 或者 -Djava.ext.dirs指定目录下的jar包 3. Application Classloader ?: ?应用类加载器 , 用来加载classpath下的class文件 4. Custom ?Classloader : 用户自定义类加载器,用来加载自定义内容.此加载器需要用户自己继承Classloader类 3.双亲委派模型1.什么是双亲委派模型?第一张图中类加载器之间的层次关系就称为双亲委派模型,双亲委派模型除了顶层的父类加载器外,其他的类加载器都应该有自己的父类加载器。 2.双亲委派模型的工作流程是什么?工作流程为如果一个类加载器收到了类加载请求,它首先不会自己去尝试加载这个类,而是把这 个请求委托给父类加载器去完成,每一个层次的类加载器都是如此。因此,所有的加载请求都应当传送到顶层的 BootStrap加载器中,只有当父加载器反馈无法完成这个加载请求时(在自己搜索范围中没有找到此类),子加载器 才会尝试自己去加载。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:54:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |