JVM classloader

 

 

你必须知道的ClassLoaderjava


为何必须知道:ClassLoader ClassLoader是类加载的重要类。mysql


分类:主要分为bootstrapClassLoader,ExtClassLoader,AppClassLoader。
是基于C++ 实现,主要加载Javahome/lib,ExtClassLoader主要加载javaHome/lib/ext,AppClassLoader主要加载classpath下面的类。sql

什么是Classloader :类的初始化装载的一个类,bootstrap

加载顺序,先让父加载器加载,若是找不到在用子加载器加载。若是父类想访问子类加载器须要Thread.cureentThread.getClassloader.获取子加载类。spa


自定义ClassLoader,为了保证委托双亲委托的原则,须要覆盖findClass. 为何要双亲委托呢。通常程序是使用AppClassLoader ,上面还有两个ClassLoader,因此叫双亲。.net

经常使用的ClassLoader场景
SPI和Tomcat
SPI 使用ClassLoader的Thread.cureentThread.getClassloader 来在lib里面访问自定义标准类如mysql.driver。
Tomcat 经过自定义类来实现类库复用,程序隔离等。blog

 

参考文档ssl

https://blog.csdn.net/xyang81/article/details/7292380文档

https://blog.csdn.net/briblue/article/details/54973413get

https://mp.weixin.qq.com/s/54ZrYCLD6rzk8T52s4wyOQ

相关文章
相关标签/搜索