【JVM】学习总览
来源:互联网 发布:蝴蝶折刀淘宝哪里买 编辑:程序博客网 时间:2024/05/09 15:24
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程序运行的标准环境。
如图所示:
这是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是执行引擎,也叫Interpreter。Class文件被加载后,会把指令和数据信息放入内存中,Execution Engine则负责把这些命令解释给操作系统。4.Runtime Data Area则是存放数据的,分为五部分:Stack,Heap,Method Area,PC Register,Native Method Stack。几乎所有的关于java内存方面的问题,都是集中在这块。
除了上述的JVM的四大组成,我从知识体系构建的角度对JVM进行了另外一层抽象,如图:
由上可见,JVM中有三个地方其实应该着重理解:
- 内存
- GC
- 类加载
接下来的博客,也将会从这三个角度来细致地对JVM进行肢解学习与编制知识网。
阅读全文
0 0
- 【JVM】学习总览
- jvm知识点总览
- JVM 知识点总览
- jvm 知识点总览
- JVM知识点总览
- jvm知识点总览
- JVM知识点总览
- jvm知识点总览
- jvm系列:jvm知识点总览
- jvm系列(八):jvm知识点总览
- jvm系列(八):jvm知识点总览
- jvm系列(八):jvm知识点总览
- jvm系列(八):jvm知识点总览
- STL学习(总览)
- html 学习总览
- 集合框架总览学习
- memcached学习之总览
- CAFFE学习一:总览
- 让你告别“自杀式”修眉的电动小刀,既美容又美体 | 钛空舱
- 一站式WPF--线程模型和Dispatcher
- chrome调试工具常用功能整理
- 循环的终止操作
- SSH(第二步)—— 单独配置Struts2框架到web项目
- 【JVM】学习总览
- javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer
- POJ 1149 PIGS (最大流建图)
- 通过Tomcat配置、启动Springboot项目war包程序
- SSH(第三步)—— 整合Struts2和Spring
- windows 根据HWND获取进程名字 和结束进程源码
- django一个project中使用多个数据库
- win10 hyper-v安装kali linux
- SSH(第四步)—— 单独配置Hibernate框架到web项目