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

JVM

时间:2016-05-04 07:51:28      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1, PC寄存器

      每个线程拥有一个PC寄存器

      在线程创建时创建

      指向下一条指令的地址

     执行本地方法时,PC的值为undefined

2,方法区

     保存装载的类信息

            类型的常量池

            字段,方法信息

    方法字节码

      通常和永久区关联在一起

*    JDK 6时,String 等常量信息置于方法区,JDK7时,已经移到了 堆

3,JAVA堆

     和程序开发密切相关

      应用系统对象都保存在堆中

      所有线程共享JAVA堆

     对分代GC来说,堆也是分代的

     GC 的主要工作区间

  

      |————————————————-  |

      |    eden  | s0   |  s1 |  tenured      |

      |___________________________|

4,   JAVA 栈

     线程私有的

     栈由一系列帧组成(JAVA 栈也叫帧栈)

     帧保存一个方法的局部变量,操作数栈,常量池指针

  每一次方法调用创建一个帧,并压栈

技术分享

 

技术分享

技术分享

 

局部变量在栈上分配,栈上分配不可能出现内存泄漏

技术分享

java 中的栈上分配

              技术分享

 

技术分享

逃逸指的是   栈是线程私有的, 是否能被其他的线程引用

技术分享

 

 

Java 的内存模型

    技术分享

技术分享

 

技术分享

 

可见性

技术分享

 

重排序

技术分享

 

 

指令重排

技术分享

 

技术分享

技术分享

JVM

标签:

原文地址:http://www.cnblogs.com/wind90/p/5457120.html

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