浅析JAVA程序运行模式及虚拟机JVM(二)

  • 来源:
  • 更新日期:2018-05-24

摘要:虚拟机的架构原理和运行机制:经过上一部分的内容的抽象和总结那么我们可以进一步抽象出基于java虚拟机规范实现的一般的JVM实现组成架构以及其运行机制和原理。

 虚拟机的架构原理和运行机制:经过上一部分的内容的抽象和总结那么我们可以进一步抽象出基于java虚拟机规范实现的一般的JVM实现组成架构以及其运行机制和原理。

96070922.jpg

虚拟机主要有三个子系统构成:
1.类装入器子系统
2.运行时数据区
3.执行引擎
类装入器子系统:Java的动态类加载功能是由类装入器子系统由他进行类的装载、链接、并初始化类文件时是指一个类第一次运行时,而不是编译时间。
(1)类加载
Bootstrap类加载器:负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class由C++实现不是ClassLoader子类
Extension类加载器:负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包
Application类加载器:负责记载classpath中指定的jar包及目录中class
 
Custom类加载器:属于应用程序根据自身需要自定义的ClassLoader如tomcat、jboss都会根据j2ee规范自行实现ClassLoader。加载过程中会先检查类是否被已加载、检查顺序是自底向上从Custom ClassLoader到BootStrap ClassLoader逐层检查只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次而加载的顺序是自顶向下也就是由上层来逐层尝试加载此类。