类加载机制

简介: 类加载机制

image.png

Java编译器将Java源文件编译成.class文件,再由JVM加载.class文件到内存中,JVM装载完成后得到一个 Class字节码对象。拿到字节码对象之后,我们就可以实例化了。

那么,类的加载过程需要使用到加载器。JVM设计了3个类加载器,它们分别是:Bootstrap类加载器、 Extension类加载器和 类加载器,这些类加载器分别加载不同作用范围的jar包和.class文件。下面,我给大家详 细介绍一下:

1、Bootstrap ClassLoader,主要是负责Java核心类库的加载,也就是 %{JDK_HOME}\lib下的rt.jar、resources.jar等

2、Extension ClassLoader,主要负责%{JDK_HOME}\lib\ext目录下的jar包和class文件

3、Application ClassLoader,主要负责当前应用里面的classpath下的所有jar包和类文件 除了系统自己提供的类加载器以外,还可以通过ClassLoader类实现自定义加载器,去满足一些特殊场景的 需求。

image.png


相关文章
|
Rust 安全 前端开发
你应该知晓的Rust Web 框架(一)
你应该知晓的Rust Web 框架
1394 1
|
存储 Java Apache
Maven - 统一构建规范:Maven 插件管理最佳实践
Maven - 统一构建规范:Maven 插件管理最佳实践
1684 0
|
存储 IDE 区块链
《Solidity 简易速速上手小册》第3章:Solidity 语法基础(2024 最新版)
《Solidity 简易速速上手小册》第3章:Solidity 语法基础(2024 最新版)
748 2
在使用`for...of`循环时,如何跳出循环?
在使用`for...of`循环时,如何跳出循环?
733 58
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
834 15
|
机器学习/深度学习 人工智能 缓存
【AI系统】GPU 基础
GPU,即图形处理器,是计算机系统中处理图形和图像的核心组件,从早期的简单图形加速到如今的高性能计算和深度学习加速,GPU 经历了显著的技术革新。本文将介绍 GPU 的发展历程、与 CPU 的区别、在 AI 领域的关键作用及其在游戏、消费电子、自动驾驶等多个领域的广泛应用。
1661 4
|
缓存 前端开发 Java
JVM知识体系学习二:ClassLoader 类加载器、类加载器层次、类过载过程之双亲委派机制、类加载范围、自定义类加载器、编译器、懒加载模式、打破双亲委派机制
这篇文章详细介绍了JVM中ClassLoader的工作原理,包括类加载器的层次结构、双亲委派机制、类加载过程、自定义类加载器的实现,以及如何打破双亲委派机制来实现热部署等功能。
1074 3
|
Rust IDE 安全
30天拿下Rust之环境搭建
Rust是一门注重安全与速度的现代系统级编程语言,凭借其独特的内存安全保证和卓越性能,在系统编程、WebAssembly等领域崭露头角。本文引导您完成Rust开发环境搭建,包括通过Rustup安装Rust及其工具链,并介绍如何使用Cargo——Rust的包管理和构建工具。此外,还推荐了几款支持Rust的集成开发环境(IDE),如RustRover、IntelliJ IDEA/CLion及VSCode等。最后,通过创建并运行一个简单的“Hello, world!”程序,让您亲身体验Rust编程的魅力。
801 6
|
存储 缓存 NoSQL
基于SpringBoot+Redis解决缓存与数据库一致性、缓存穿透、缓存雪崩、缓存击穿问题
这篇文章讨论了在使用SpringBoot和Redis时如何解决缓存与数据库一致性问题、缓存穿透、缓存雪崩和缓存击穿问题,并提供了相应的解决策略和示例代码。
691 0
|
存储 Python
Python中的布尔数据类型:深入探索与应用
Python中的布尔数据类型:深入探索与应用
1500 5

热门文章

最新文章