本文向您展示了JVM类加载机制。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。
1. java类加载运行过程
加载:加载字节码文件,将类信息写入方法区,生成java.lang.Class对象。
验证:验证字节码文件。
准备:为静态变量分配内存,并分配默认值。
解析:用直接引用代替符号引用。
初始化:给静态变量赋值并执行静态代码块。
2. 双亲委培机制
1)类加载器双亲委派模型
当没有指定类加载器时,jvm的默认类加载器是AppClassLoader。
优点:a .防止核心API被篡改,b .避免类被加载两次。2)ClassLoader源代码。
java.lang.ClassLoader
protectedClass?loadClass(Stringname,booleanresolve)
throwsClassNotFoundException
{
已同步(getClassLoadingLock(名称)){ 0
//检查当前类是否已经加载。
上课?c=findLoadedClass(名称);
if(c==null){ 0
long t0=system . nano time();
尝试{
如果(家长!=null){ 0
//父类加载器试图加载。
c=parent.loadClass(name,false);
}else{
//引导类装入器装入。
c=findBootstrapClassOrNull(名称);
}
} catch(class notfoundexception one){ 0
}
if(c==null){ 0
//未加载父类加载器时,调用自己的findClass加载该类。
c=findClass(名称);
}
}
如果(解决){ 0
resolveClass(c);
}
returnc
}
}以上内容就是JVM类加载机制是什么样的。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/44224.html