JVM系列笔记目录
- 虚拟机的基础概念
- class文件结构
- class文件加载过程
- jvm内存模型
- JVM常用指令
- GC与调优
Class文件加载过程
JVM加载Class文件主要分3个过程:Loading 、Linking、Initialzing
1.Loading
Loading的过程就是通过类加载器将.class文件加载到jvm内存中过程。需要理解双亲委派机制、类加载器ClassLoader,加载过程如下。

ClassLoader
不同的类加载器加载范围不一样,以Java8中的为例。
- BootClassLoader 加载范围
sun.boot.class.paht- ExtClassLoader 加载范围
java.ext.dirs- AppClassLoader 加载范围
java.class.path- CustomClassLoader 可自定义加载范围
前三个加载器来自JDK的Launcher类,三个ClassLoader作为Launcher的内部类,感兴趣可以查看下源码。

开发者也可以自定义的ClassLoader,自定义记载范围。
双亲委派机制
自底向上检查该类是否已经加载,parent方向;自顶向下进行类的实际查找和加载,child方向。
类的加载遵循双亲委派机制,主要是出于安全的考虑。双亲委派机制是如何实现的,下面源码会解释。

**注意:**双亲委派中存在所谓的父加载器并不是加载器的加载器,只是翻译的问题,别混淆了类的继承概念。

本文是JVM系列的第三篇,详细介绍了Class文件加载的完整过程,包括Loading、Linking和Initializing。重点讲解了双亲委派机制、ClassLoader的工作原理以及如何自定义ClassLoader。此外,还讨论了在特定情况下如何打破双亲委派机制,并总结了Class的执行方式及其优缺点。
最低0.47元/天 解锁文章
1394

被折叠的 条评论
为什么被折叠?



