摘录,学习笔记
java虚拟机原理:
1.创建JVM装载环境和配置。Java.exe调用GetApplicationHome的API,找出JDK目录下的jre,调用jre\bin\java.dll,再调用lib\i138\JCM.cfg
2.装载JVM.dll
3.初始化JVM.dll并挂接到JNIENV(JNI调用接口)实例
4.调用JNIENV实例装载并处理class类。
java虚拟机中内嵌一个bootstarp的装载器,装载jdk\jre\lib\rt.jar。 使用C++实现,为null。
bootstarp包含用java实现的装载器:
1.ExtClassLoader 放在jre\lin\ext包中
2.APPClassLoader 应用程序启动加载类
java虚拟机由5个部分:一组指令集,一组寄存器,一个栈,一个吴用单元收集堆,一个方法区域。
详见:http://kayo.iteye.com/blog/190610
java提供抽象类ClassLoader,用户自定义的雷装载器都实例化与ClassLoader的子类。
System Class Loader是一个特殊的用户自定义装载器,由JVM的实现者提供,默认的雷装载器。系统类装载器可以通过ClassLoader.getSystemClassLoader()方法得到。
AppClassLoader的parent是ExtClassLoader, ExtClassLoader的parent是bootStarp ClassLoader。bootStarp ClassLoader使用C++实现,值为null。