技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> Java运行时内存模型

Java运行时内存模型

浏览:2726次  出处信息

    Java在运行时,可以根据声明周期大致把内存分为两部分:与JVM声明周期一致的内存,与线程生命周期一致的内存。根据Java虚拟机规范第二版,Java在运行时内存可以分为以下6个部分:

PC计数器栈堆方法区运行时常量池本地方法栈

    PC计数器

    每个线程都有自己的PC计数器。在不是本地方法的时候,PC计数器始终记着下一条需要执行的指令。在执行本地方法的时候,PC计数器里面是undefined。

    

    每个线程对应着一个栈。栈(stack)是用来存储帧(frame)的,栈只对帧进行pop和push的操作,每个方法对应一个帧。

    

    堆(heap)的生命周期和JVM是一致的,所有的线程都可以共享堆。当堆里面的东西没有被引用时,垃圾回收器就会回收他们。

    方法区

    方法区也是和JVM的生命周期一致,逻辑上是堆的一部分。里面存着每个class的数据,包括常量池,字段,方法等等。

    运行时常量池

    是方法区的一部分。存储着类或者接口的常量。

    本地方法栈

    也就是在执行本地方法时所需的栈(不怎么了解)。

建议继续学习:

  1. Linux内存点滴 用户进程内存空间    (阅读:11426)
  2. ps - 按进程消耗内存多少排序    (阅读:11249)
  3. Linux Used内存到底哪里去了?    (阅读:9956)
  4. Linux操作系统的内存使用方法详细解析    (阅读:8862)
  5. linux内核研究笔记(一)内存管理 – page介绍    (阅读:8569)
  6. 几个内存相关面试题(c/c++)    (阅读:8011)
  7. 内存越界的概念和调试方法    (阅读:6283)
  8. Innodb分表太多或者表分区太多,会导致内存耗尽而宕机    (阅读:6150)
  9. 必看!linux系统如何查看内存使用情况    (阅读:6144)
  10. 如何查看Linux 硬件配置信息    (阅读:5864)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1