黑马程序员技术交流社区

标题: JAVA堆内存--十个要点 [打印本页]

作者: 黄或俊    时间: 2012-3-29 15:17
标题: JAVA堆内存--十个要点
想了解一下程序在内存中的变化,刚看到,给大伙分享一下
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堆空间,可以查看给每个对象分配了多少内存。

作者: 刘士    时间: 2012-3-29 15:46
嗯,总结的很好哦。。。
作者: 欧德林    时间: 2012-3-29 17:17
New Generation, Old Generation或叫作Tenured Generation,还有Perm Space
。。。。
不哦啊。太陌生
作者: 和心愿    时间: 2012-3-29 19:53
总结的很好啊,楼主辛苦了
作者: 王杰    时间: 2012-3-29 20:40
楼主辛苦了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2