- jvm是内存中的虚拟机,存储在内存
Java虚拟机:
Class Loader : 根据特定格式,加载Class文件到内存
Runtime Data Area:JVM内存空间结构模型
Execution Engine:对命令进行解析
Native Interface(本地接口):融合不同开发语言的原生库给Java用
-
步骤
- 首先.Class文件通过Class Loader 加载内存,在由给Execution Engine解析class文件里对字节码交给操作系统去执行。
Native Interface 举例
Class.forName 作用:返回与给定的字符串名称相关联的类或接口的Class对象
@CallerSensitive
public static Class<?> forName(String className)
throws ClassNotFoundException {
Class<?> caller = Reflection.getCallerClass();
return forName0(className, true, ClassLoader.getClassLoader(caller), caller);
}
forName0:
private static native Class<?> forName0(String name, boolean initialize,
ClassLoader loader,
Class<?> caller)
throws ClassNotFoundException;
此处native接口 为Native Interface(本地接口)