【JVM】学习总览

Java技术体系

       通常,我们把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境,甚者,我们以JDK代替整个Java技术体系。另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。

       如图所示:
http://www.oracle.com/technetwork/java/javase/tech/index.html
       这是Oracle官网中,对Java SE技术体系的描述。由上可见,JVM是Java技术体系中JRE这块最核心的一部分(如上,HotSpot是Oracle关于JVM的商标,区别于IBM,HP等厂商开发的JVM),接下来就主要来对JVM进行总结。

JVM总览

      如下图所示,JVM由”ClassLoader,Runtime Data Area,Execution Engine,Native Interface”四部分组成:
这里写图片描述
这里我就不重复发明轮子了,参考ImportNew中一篇文章对其组成的解释:http://www.importnew.com/16388.html

1.ClassLoader是负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。

2.Native Interface是负责调用本地接口的。他的作用是调用不同语言的接口给JAVA用,他会在Native Method Stack中记录对应的本地方法,然后调用该方法时就通过Execution Engine加载对应的本地lib。原本多于用一些专业领域,如JAVA驱动,地图制作引擎等,现在关于这种本地方法接口的调用已经被类似于Socket通信,WebService等方式取代。

3.Execution Engine是执行引擎,也叫InterpreterClass文件被加载后,会把指令和数据信息放入内存中,Execution Engine则负责把这些命令解释给操作系统。

4.Runtime Data Area则是存放数据的,分为五部分:StackHeapMethod AreaPC RegisterNative Method Stack。几乎所有的关于java内存方面的问题,都是集中在这块。

       除了上述的JVM的四大组成,我从知识体系构建的角度对JVM进行了另外一层抽象,如图:
这里写图片描述

       由上可见,JVM中有三个地方其实应该着重理解:
- 内存
- GC
- 类加载

       接下来的博客,也将会从这三个角度来细致地对JVM进行肢解学习与编制知识网。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值