首页 > 代码库 > JVM学习总结(一)
JVM学习总结(一)
JVM--Java虚拟机
1.类加载器
JVM虚拟机的类加载器有三个
bootstrapClassLoader 引导类加载器 是有C语言编写,在JVM虚拟机启动时 加载到内存中负责加载rt.jar夹包内的类--jre内置夹包
ExtClassLoader 扩展类加载器 Java语言编写,由引导类加载器加载,父加载器为引导类加载器,负责加载ext包内的所有jar包,--负责Java扩展功能组件接口
ApplicantClassLoader 程序类加载器, Java语言编写,由引导类加载器加载,父加载器为扩展类加载器,负责加载程序类,---加载运行程序
自定义类加载器:及用户自定义的类加载器,继承ClassLoader类,
如何加载?
Java类加载器使用了双亲委托模式--一个需要加载的类首先由ApplicantClassLoader 类加载器加载,但是这个加载器不会直接加载,而是交给父类加载器ExtClassLoader 加载器加载,
而这个加载器也不会立即加载,还会交给其父加载器bootstrapClassLoader 加载,当此加载器不能加载时由子类加载器加载,以此类推,具有递归的特性。
Tomcat服务器的类加载器
1.tomcat服务器的类加载器和JVM的刚好相反,它是先有子类加载,如果加载不了交给父类加载器加载,以此类推,具有递归的特性。与代理模式类似
2.tomcat服务器会为每个应用程序创建一套单独的类加载器,每个程序之间不可以访问。
OSGI模式
这个模式在IDE工具插件中使用广泛。我们在Eclipse编辑器中安装各种插件,每个插件都有自己独立的类加载器,但是各插件之间可以访问其它插件公开的类。
JVM学习总结(一)