JAVA虚拟机总结以看别人Blog理解

来源:互联网 发布:网络摄像机监控软件 编辑:程序博客网 时间:2024/06/14 07:19

Java虚拟机的层:

运行过程:得到.class文件 放入类加载器中交给执行引擎运行 交给运行时数据区得到所要的数据


java虚拟机一共分为三个部分: 类加载器,执行引擎,运行时数据区

1.类加载器:有4种类加载器


它的加载模式是从下往上执行如上图,先从所有的类加载器中查找所要加载的类是否已经加载,如没有加载就从上往下找到要加载的类,这样就等于一个类只加载一次

  • 启动类加载器(BootstrapClassLoader):在JVM运行时被创建,负责加载存放在JDK安装目录下的jre\lib的类文件,或者被-Xbootclasspath参数指定的路径中,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类均被Bootstrap ClassLoader加载)。启动类无法被JAVA程序直接引用。
  • 扩展类加载器(Extension ClassLoader):该类加载器负责加载JDK安装目录下的\jre\lib\ext的类,或者由java.ext.dirs系统变量指定路径中的所有类库,开发者也可以直接使用扩展类加载器。
  • 应用程序类加载器(AppClassLoader):负责加载用户类路径(Classpath)所指定的类,开发者可以直接使用该类加载器,如果应用程序中没有定义过自己的类加载器,该类加载器为默认的类加载器。
  • 用户自定义类加载器(User ClassLoader):JVM自带的类加载器是从本地文件系统加载标准的java class文件,而自定义的类加载器可以做到在执行非置信代码之前,自动验证数字签名,动态地创建符合用户特定需要的定制化构建类,从特定的场所(数据库、网络中)取得java class。
   运行时数据区字节码的加载:




原创粉丝点击