码迷,mamicode.com
首页 > 编程语言 > 详细

java程序内存使用

时间:2016-11-27 07:40:59      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:nat   扩展   运行时   服务   stack   编译   内存管理   java内存管理   ima   

一、内存使用示意图

技术分享

二、java运行时数据区域

技术分享

 

1、程序计数器:

当前线程所执行字节码的行号提示器。

2、java虚拟机栈:

线程私有,与线程生命周期相同,保存基本数据类型,如果线程所请求的栈深度大于虚拟机所允许的深度,会抛出StackOverflowError,如果扩展时无法申请足够的内存会抛出OutOfMemoryError。

3、本地方法栈:

与虚拟机栈所发挥的作用类似,它是为虚拟机使用的native方法服务,也会抛出StackOverflowError和OutOfMemoryError异常

4、java堆:

它是各个线程共享的区域,用来存放对象的实例。java堆是java内存管理器(gc)管理的主要区域

5、方法区:

各个线程共享的区域,用于存储:类信息、常量、静态变量、编译后的代码等。

6、运行时常量池:

方法区的一部分

 

java程序内存使用

标签:nat   扩展   运行时   服务   stack   编译   内存管理   java内存管理   ima   

原文地址:http://www.cnblogs.com/hy87/p/6096075.html

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