首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
java面试题基础
冒泡排序算法
插入排序算法
归并排序算法
二叉树排序算法
基数排序
选择排序
堆排序
快排
TCP-三次握手
HTTP协议
WebSocket
Mysql架构
Innodb与Myisam数据库引擎
事务隔离级别
面向对象(OOP)
异常
泛型
Object
StringBuilder
代理
注解
java面试题基础二
HashMap
ConcurrentHashMap
BlockingQueue
线程
Volatile
AtomicInteger
Synchronized
Java虚拟机架构
类加载器
内存模型
垃圾回收
Mybatis面试题
IOC
高并发系统设计
分布式缓存
分布式锁
分布式事务
消息队列
当前位置:
首页>>
技术小册>>
Java面试指南
小册名称:Java面试指南
### Java中的类加载器介绍 Java中的类加载器(ClassLoader)是Java平台的一个核心组件,它负责将Java类的字节码从磁盘加载到内存中,并构造出类的对象。Java虚拟机提供了三种类加载器:Bootstrap ClassLoader、Extension ClassLoader和Application ClassLoader。每个类加载器都有其特定的加载范围和加载顺序,不同的类加载器可以互相协作来完成类的加载。 Bootstrap ClassLoader:Bootstrap ClassLoader是Java虚拟机的内置类加载器,它负责加载Java虚拟机的核心类库,如java.lang包中的类。Bootstrap ClassLoader是C++编写的,无法通过Java代码来直接引用。 Extension ClassLoader:Extension ClassLoader是Java虚拟机的扩展类加载器,它负责加载Java虚拟机的扩展类库,如javax包中的类。Extension ClassLoader是Java编写的,可以通过Java代码来直接引用。 Application ClassLoader:Application ClassLoader是Java虚拟机的应用程序类加载器,它负责加载应用程序中的类。Application ClassLoader是Java编写的,可以通过Java代码来直接引用。 下面是一个简单的示例代码,用来演示Java中的类加载器: ```java public class ClassLoaderDemo { public static void main(String[] args) { ClassLoader classLoader = ClassLoaderDemo.class.getClassLoader(); while (classLoader != null) { System.out.println(classLoader); classLoader = classLoader.getParent(); } } } ``` 在上面的代码中,我们通过调用ClassLoaderDemo类的getClassLoader()方法获取了ClassLoaderDemo类的类加载器。然后,我们使用while循环遍历ClassLoaderDemo类的类加载器以及其父类加载器,并将其打印到控制台上。 运行上面的代码,我们可以看到如下的输出结果: ```java sun.misc.Launcher$AppClassLoader@18b4aac2 sun.misc.Launcher$ExtClassLoader@7852e922 ``` 在上面的输出结果中,第一行输出了Application ClassLoader的信息,第二行输出了Extension ClassLoader的信息。由此可见,ClassLoaderDemo类是由Application ClassLoader加载的,而Application ClassLoader又是由Extension ClassLoader加载的。最终,Bootstrap ClassLoader将作为顶级类加载器,并且无法通过Java代码直接引用。
上一篇:
Java虚拟机架构
下一篇:
内存模型
该分类下的相关小册推荐:
SpringBoot合辑-高级篇
Java语言基础15-单元测试和日志技术
java源码学习笔记
SpringBoot合辑-初级篇
Java语言基础10-Java中的集合
Java必知必会-Maven初级
Java必知必会-JDBC
Java语言基础14-枚举和注解
Java并发编程
Java高并发秒杀入门与实战
经典设计模式Java版
手把手带你学习SpringBoot-零基础到实战