跳至主要內容

深度解析JVM类加载机制

大约 2 分钟javaJVMclassLoader注解

General summary

类加载器结构

自定义类加载器

实战学习

使用自定义类加载器解析Mybatis注解

线程上下文类加载器

MySQL Driver

LaunchedURLClassLoader

FAQ

  1. 如何判断两个类(Class对象)是否相等 ?

  2. 本地IDEA启动SpringBoot与服务器jar包形式运行SpringBoot项目的区别是什么 ?

  3. 对于String.class或者Object.class这样的由BootstrapClassLoader加载的类,当使用AppClassLoader加载器加载某个类时,若该类中出现String.class的话,那么是不是每次都需要基于双亲委派模型递归遍历,直至BootstrapClassLoader调用findLoadedClass方法时,才可以判断出String.class或者Object.class已被加载呢 ?

  1. 当自定义类加载需要加载的类中出现String.class时,类加载如何加载 ?

  2. 为什么我看不到AppClassLoader的源码 ?

  3. 在不遵循双亲委派模型的情况下,使用自定义类加载器加载String.class会发生什么 ?

  4. JVM在加载一个类时,发现类中引用了尚未被加载至JVM中的类(对于每个类),JVM是如何处理处理的 ?

参考文献

https://developer.aliyun.com/article/1114576open in new window
https://blog.csdn.net/yangliuhbhd/article/details/81022057open in new window
https://frank909.blog.csdn.net/article/details/54973413open in new window
https://blog.csdn.net/zxh1991811/article/details/107981268open in new window
http://www.yxhuang.com/2020/07/07/java-class-loader/open in new window
https://blog.csdn.net/m0_46761060/article/details/124417972open in new window
https://blog.csdn.net/zuodaoyong/article/details/113788263open in new window
https://blog.csdn.net/justloveyou_/article/details/72217806open in new window
https://spring-source-code-learning.gitbook.teaho.net/boot/spring-boot-loader.htmlopen in new window
https://www.jianshu.com/p/0a86966146b6open in new window
https://mp.weixin.qq.com/s?__biz=MzkwNzI0MzQ2NQ==&mid=2247488905&idx=1&sn=654ee37d8aaaa1415f30bdbf065de129&source=41#wechat_redirectopen in new window
https://blog.csdn.net/qq_44543508/article/details/102983363open in new window
https://segmentfault.com/a/1190000023130736?utm_source=sf-similar-articleopen in new window