类加载时机
加载时机.png类生命周期
类生命周期.png类加载机制
双亲委派机制.png双亲委派机制的核心,ClassLoader.loadClass()
:
loadClass(String name, Boolean resolve) throws ClassNotFoundException{
//首先检查请求的类是否已经被加载过
Class c = findLoadedClass(name);
if(c == null){
try{
if(parent != null){//委派父类加载器加载
c = parent.loadClass(name, false);
}else{//委派启动类加载器加载
c = findBootstrapClassOrNull(name);
}
}catch(ClassNotFoundException e){
//父类加载器无法完成类加载请求
}
if(c == null){//本身类加载器进行类加载
c = findClass(name);
}
}
if(resolve){
resolveClass(c);
}
return c;
}
这种委派模式保证了java基础类库或者一些基本框架只被加载一次,保证资源的共享,不浪费资源
网友评论