java学习笔记
类加载器在加载的时候:
1、并非一次性加载,需要的时候才动态加载
2、static语句块在加载后只执行一次
static{
}
3、dynamic语句块在每次new新的对象的时候都会执行
2、extension class loader 扩展的类装载器
3、application class loader 加载用户自己定义的类的加载器,也就是SystemClassLoader
4、其他的一些ClassLoader SercureClassLoader/URLClassLoader
1、并非一次性加载,需要的时候才动态加载
2、static语句块在加载后只执行一次
static{
}
3、dynamic语句块在每次new新的对象的时候都会执行
等同于构造方法中的语句,用的比较少
class A {
{//dynamic 语句块
}
}
JDK内置ClassLoader
1、bootstrap class loader
是最核心的ClassLoader,没有名字,管理一些最核心的类,以及加载其他的类加载器
implemented by native
language(c for example)
load the core classes of jdk
loader the class from jre/lib/txt
JDK ClassLoader的层次关系(不是继承)
bootstrap class
loader<----------extension class loader<-------application
class loader<----other classLoader
ClassLoader在进行类加载的时候,首先检查parent索引指向的上一层的加载器是否已经加载过了,如果加载,此加载器不会
再次加载
注:该帖子摘自我的csdn博客学习笔记