A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄或俊 中级黑马   /  2012-3-29 15:17  /  2037 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

想了解一下程序在内存中的变化,刚看到,给大伙分享一下
Java堆内存(heap memory)的十个要点:

1. Java堆内存是操作系统分配给JVM的内存的一部分。

2. 当我们创建对象时,它们存储在Java堆内存中。

3. 为了便于垃圾回收,Java堆空间分成三个区域,分别叫作New Generation, Old Generation或叫作Tenured Generation,还有Perm Space。

4. 你可以通过用JVM的命令行选项 -Xms, -Xmx, -Xmn来调整Java堆空间的大小。不要忘了在大小后面加上”M”或者”G”来表示单位。举个例子,你可以用 -Xmx256m来设置堆内存最大的大小为256MB。

5. 你可以用JConsole或者 Runtime.maxMemory(), Runtime.totalMemory(), Runtime.freeMemory()来查看Java中堆内存的大小。

6. 你可以使用命令“jmap”来获得heap dump,用“jhat”来分析heap dump。

7. Java堆空间不同于栈空间,栈空间是用来储存调用栈和局部变量的。

8. Java垃圾回收器是用来将死掉的对象(不再使用的对象)所占用的内存回收回来,再释放到Java堆空间中。

9. 当你遇到java.lang.outOfMemoryError时,不要紧张,有时候仅仅增加堆空间就可以了,但如果经常出现的话,就要看看Java程序中是不是存在内存泄露了。

10. 请使用Profiler和Heap dump分析工具来查看Java堆空间,可以查看给每个对象分配了多少内存。

评分

参与人数 1黑马币 +1 收起 理由
刘士 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
嗯,总结的很好哦。。。
回复 使用道具 举报
New Generation, Old Generation或叫作Tenured Generation,还有Perm Space
。。。。
不哦啊。太陌生
回复 使用道具 举报
总结的很好啊,楼主辛苦了
回复 使用道具 举报
楼主辛苦了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马