1.类加载器(Class Loader):加载类文件到内存。Class loader只管加载,只要符合文件结构就加载,至于能否运行,它不负责,那是有Exectution Engine 负责的。

2.执行引擎(Execution Engine):也叫解释器,负责解释命令,交由操作系统执行。

3.本地库接口(Native Interface):本地接口的作用是融合不同的语言为java所用

4.运行时数据区(Runtime Data Area):

    

(1)。堆是java对象的存储区域,任何用new字段分配的java对象实例和数组,都被分配在堆上,java堆可用-Xms和-Xmx进行内存控制,jdk1.7以后,运行时常量池从方法区移到了堆上。

        新生代:老年代 = 1:2

        Eden:s1: s2=8:1:1

(2)方法区:用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。

  误区:方法区不等于永生代

  很多人原因把方法区称作“永久代”(Permanent Generation),本质上两者并不等价,只是HotSpot虚拟机垃圾回收器团队把GC分代收集扩展到了方法区,或者说是用来永久代来实现方法区而已,这样能省去专门为方法区编写内存管理的代码,但是在Jdk8也移除了“永久代”,使用Native Memory来实现方法区。

(3)虚拟机栈:虚拟机栈中执行每个方法的时候,都会创建一个栈桢用于存储局部变量表,操作数栈,动态链接,方法出口等信息。

(4)本地方法栈:与虚拟机发挥的作用相似,相比于虚拟机栈为Java方法服务,本地方法栈为虚拟机使用的Native方法服务,执行每个本地方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。

(5)程序计数器。指示Java虚拟机下一条需要执行的字节码指令。

    线程私有的:  程序计数器    虚拟机栈     本地方法栈

最新文章

  1. Ctrl-A全选这点事(C#,WinForm)
  2. 使用JDBC调用存储过程
  3. [AlwaysOn Availability Groups]排查:AG超过RTO
  4. Linux下多窗口分屏式终端--Terminator
  5. 学习设计接口api(转)
  6. Eclipse环境下配置spket中ExtJS5.0提示
  7. 【BZOJ】1854: [Scoi2010]游戏
  8. Qt中QObject中的parent参数
  9. LightOJ 1422 Halloween Costumes 区间dp
  10. 经历:sybase的sql查询,当传递的参数中包含全角空格(\u00a0),查询慢
  11. lua方法点(.)调用和冒号(:)调用区别:
  12. android JNI调用 execlp函数
  13. 幻世(OurDream)2D图形引擎使用教程8——处理操作输入(2)
  14. jenkins 通过批处理自动构建 非标准项目
  15. Java垃圾回收机制[转]
  16. 异常-----The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path。
  17. 2.2.2 RelativeLayout(相对布局)
  18. IIS7配置伪静态把后缀名映射为html方案
  19. POJ1789:Truck History(Prim算法)
  20. [翻译] ObjectAL for iPhone and Mac(持续更新)

热门文章

  1. python-字符串的处理
  2. java中的进制转换以及字符串类和数值类的相互转化
  3. 前端每日实战:65# 视频演示如何用纯 CSS 创作一个摇摇晃晃的 loader
  4. 前端每日实战:67# 视频演示如何用纯 CSS 创作单元素点阵 loader
  5. 【转】从phpMyAdmin批量导入Excel内容到MySQL(亲测非常简洁有效)
  6. 本地develop往远端develop上推代码步骤
  7. mybatis框架之动态代理
  8. 10.27 sort
  9. JS继承 实现方式
  10. shell脚本——注释(单行注释 多行注释)