Java运行时内存模型
浏览:3050次 出处信息
Java在运行时,可以根据声明周期大致把内存分为两部分:与JVM声明周期一致的内存,与线程生命周期一致的内存。根据Java虚拟机规范第二版,Java在运行时内存可以分为以下6个部分:
PC计数器栈堆方法区运行时常量池本地方法栈PC计数器
每个线程都有自己的PC计数器。在不是本地方法的时候,PC计数器始终记着下一条需要执行的指令。在执行本地方法的时候,PC计数器里面是undefined。
栈
每个线程对应着一个栈。栈(stack)是用来存储帧(frame)的,栈只对帧进行pop和push的操作,每个方法对应一个帧。
堆
堆(heap)的生命周期和JVM是一致的,所有的线程都可以共享堆。当堆里面的东西没有被引用时,垃圾回收器就会回收他们。
方法区
方法区也是和JVM的生命周期一致,逻辑上是堆的一部分。里面存着每个class的数据,包括常量池,字段,方法等等。
运行时常量池
是方法区的一部分。存储着类或者接口的常量。
本地方法栈
也就是在执行本地方法时所需的栈(不怎么了解)。
建议继续学习:
- Linux内存点滴 用户进程内存空间 (阅读:12559)
- ps - 按进程消耗内存多少排序 (阅读:12118)
- Linux Used内存到底哪里去了? (阅读:10995)
- linux内核研究笔记(一)内存管理 – page介绍 (阅读:9844)
- Linux操作系统的内存使用方法详细解析 (阅读:9550)
- 几个内存相关面试题(c/c++) (阅读:8790)
- 内存越界的概念和调试方法 (阅读:6890)
- Innodb分表太多或者表分区太多,会导致内存耗尽而宕机 (阅读:7097)
- 必看!linux系统如何查看内存使用情况 (阅读:6765)
- 如何查看Linux 硬件配置信息 (阅读:6657)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:Facebook Haystack图片存储架构 >>
文章信息
- 作者:zavakid 来源: ZavaKid的博客
- 标签: 内存 内存模型
- 发布时间:2011-01-29 22:16:29
建议继续学习
近3天十大热文
-
[881] WordPress插件开发 -- 在插件使用 -
[136] 解决 nginx 反向代理网页首尾出现神秘字 -
[57] 整理了一份招PHP高级工程师的面试题 -
[54] Innodb分表太多或者表分区太多,会导致内 -
[54] 分享一个JQUERY颜色选择插件 -
[54] 用 Jquery 模拟 select -
[54] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] jQuery性能优化指南 -
[52] CloudSMS:免费匿名的云短信 -
[51] 全站换域名时利用nginx和javascri
