网站开发费用鉴定,电商网站后台功能,网站高质量外链,WordPress安全社区yym带你了解jvm源码#xff0c;openjdk11源码#xff0c;java类jvm加载原理
jdk11中java类在jvm是如何被1查找、2加载
以下说明的是MiDept类是如何被java classloader 和 jvm加载步骤 上源代码
public static void main(String[] args) {Thread.currentThread().setName…yym带你了解jvm源码openjdk11源码java类jvm加载原理
jdk11中java类在jvm是如何被1查找、2加载
以下说明的是MiDept类是如何被java classloader 和 jvm加载步骤 上源代码
public static void main(String[] args) {Thread.currentThread().setName(yym);MiDept miDept new MiDept();System.out.println(miDept.show(123456));}public class MiDept {public String show(int data) {System.out.println(mi--------------data);return yym-invoke-method;}}一、java层查找步骤
findLoadedClass0
AppClassLoader-PlatformClassLoader-BootClassLoader
AppClassLoader-PlatformClassLoader-BootClassLoader
在native层函数
private final native Class? findLoadedClass0(String name);
jvm源码查找步骤
1、对应jni的findLoadedClass0方法 2、 3、查找klass 4、字典中查找klass 5、返回klass实例 二、java层加载步骤
AppClassLoader-PlatformClassLoader-BootClassLoader
AppClassLoader-PlatformClassLoader-BootClassLoader
在native层函数
static native Class? defineClass1(ClassLoader loader, String name, byte[] b, int off, int len, ProtectionDomain pd, String source);
jvm源码加载步骤
1、对应jni方法 2、
3、 4、从文件中加载klass 5、 6、创建klass实例 7、加载完成返回klass
8、更新字典 9、添加klass到字典 10、返回klass镜像对应java的class类对象