JVM基本结构

原创
2016/08/14 11:43
阅读数 20

JVM架构图

PC寄存器

  • 每个线程拥有一个PC寄存器
  • 在线程创建时创建
  • 指向下一条指令的地址
  • 执行本地方法时,PC的值为undefined

方法区

  • 保存装载的类信息(类型的常量池,字段和方法信息,方法字节码)
  •     JDK6时,String等常量信息置于方法区
  •     JDK7时,String等常量信息置于java堆
  • 通常和永久区(Perm)关联在一起

Java堆

  • 和程序运行密切相关
  • 应用系统对象都保存在java堆中
  • 所有线程共享java堆
  • 对分代GC来说,堆也是分代的
  • 堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。
  • 新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。

Java栈

  • 线程私有,每个线程都有独立的栈空间
  • 栈由一系列帧组成,通常只有几百K
  • 一个帧保存一个方法的局部变量,操作数栈,常量池指针
  • 每一个方法调用创建一个帧,因此决定了函数调用的深度

栈,堆,方法区交互

展开阅读全文
jvm
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部