Java运行时内存模型
浏览:2716次 出处信息
Java在运行时,可以根据声明周期大致把内存分为两部分:与JVM声明周期一致的内存,与线程生命周期一致的内存。根据Java虚拟机规范第二版,Java在运行时内存可以分为以下6个部分:
PC计数器栈堆方法区运行时常量池本地方法栈PC计数器
每个线程都有自己的PC计数器。在不是本地方法的时候,PC计数器始终记着下一条需要执行的指令。在执行本地方法的时候,PC计数器里面是undefined。
栈
每个线程对应着一个栈。栈(stack)是用来存储帧(frame)的,栈只对帧进行pop和push的操作,每个方法对应一个帧。
堆
堆(heap)的生命周期和JVM是一致的,所有的线程都可以共享堆。当堆里面的东西没有被引用时,垃圾回收器就会回收他们。
方法区
方法区也是和JVM的生命周期一致,逻辑上是堆的一部分。里面存着每个class的数据,包括常量池,字段,方法等等。
运行时常量池
是方法区的一部分。存储着类或者接口的常量。
本地方法栈
也就是在执行本地方法时所需的栈(不怎么了解)。
建议继续学习:
- Linux内存点滴 用户进程内存空间 (阅读:11369)
- ps - 按进程消耗内存多少排序 (阅读:11216)
- Linux Used内存到底哪里去了? (阅读:9929)
- Linux操作系统的内存使用方法详细解析 (阅读:8841)
- linux内核研究笔记(一)内存管理 – page介绍 (阅读:8509)
- 几个内存相关面试题(c/c++) (阅读:7986)
- 内存越界的概念和调试方法 (阅读:6263)
- Innodb分表太多或者表分区太多,会导致内存耗尽而宕机 (阅读:6131)
- 必看!linux系统如何查看内存使用情况 (阅读:6131)
- 如何查看Linux 硬件配置信息 (阅读:5844)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:Facebook Haystack图片存储架构 >>
文章信息
- 作者:zavakid 来源: ZavaKid的博客
- 标签: 内存 内存模型
- 发布时间:2011-01-29 22:16:29
建议继续学习
近3天十大热文
- [65] Oracle MTS模式下 进程地址与会话信
- [65] Go Reflect 性能
- [64] 如何拿下简短的域名
- [59] android 开发入门
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [58] 图书馆的世界纪录
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [46] 读书笔记-壹百度:百度十年千倍的29条法则