码迷,mamicode.com
首页 > 其他好文 > 详细

JVM(一)

时间:2019-12-28 00:02:13      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:系统   情况   内存   数据   类加载   com   launch   变量   就是   

介绍

 


  JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

  JVM所处位置:从下图可以看出JVM 是运行在操作系统之上的,与硬件没有直接的交互

技术图片

 

     JVM结构图体系

技术图片

 

 

 

  类装载器 ClassLoader,执行引擎 ExecutionEngine

  类装载器 ClassLoader

  类装载器负责加载 .class 文件,class 文件在文件开头有特定的文件标示(cafe babe),将.class文件加载到内存中,将其放在运行时数据区的方法区(放类的描述信息)内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构, ClassLoader 只负责 class 文件的加载,至于它是否可以运行,则由 Execution Engine 决定。ClassLoader有多个

  技术图片

 

   ClassLoader:  

    启动类加载器:Bootstrap ClassLoader,负责加载存放在JDK\jre\lib(JDK代表JDK的安装目录,下同)下,或被-Xbootclasspath参数指定的路径中的,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类均被Bootstrap ClassLoader加载)。启动类加载器是无法被Java程序直接引用的。

 

   扩展类加载器:Extension ClassLoader,该加载器由sun.misc.Launcher$ExtClassLoader实现,它负责加载DK\jre\lib\ext目录中,或者由java.ext.dirs系统变量指定的路径中的所有类库(如javax.*开头的类),开发者可以直接使用扩展类加载器。

 

   应用程序类加载器:Application ClassLoader,该类加载器由sun.misc.Launcher$AppClassLoader来实现,它负责加载用户类路径(ClassPath)所指定的类,开发者可以直接使用该类加载器,如果应用程序中没有自定义过自己的类加载器,一般情况下这个就是程序中默认的类加载器。

   

JVM(一)

标签:系统   情况   内存   数据   类加载   com   launch   变量   就是   

原文地址:https://www.cnblogs.com/steakliu/p/12109942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!