黑马程序员技术交流社区
标题:
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