1. Java堆的内存是由操作系统分配给JVM的内存部分。
2. Java的对象是在堆中创建
3. Java堆空间为了垃圾回收分为三个区域或代,叫做新代,年老代和永久代。在Hotspot JVM中永久代在full gc时被垃圾回收。
4. 您可以使用JVM命令行选项-XMS,-Xmx和-Xmn为增加或改变Java堆空间的大小。不要忘了指定的大小来表示兆或千兆后需添加单词“M”或 “G”。例如,你可以通过执行命令
java -Xmx256M HelloWord来设置Java堆大小为256MB。
5. 您可以使用JConsole或Runtime.maxMemory(),Runtime.totalMemory(),Runtime.freeMemory()查询有关Java堆大小的方案。
6. 在Java中您可以使用命令jmap来获取heap dump,并使用jhat来分析这个heap dump。
7. Java堆空间不同于堆栈,堆栈用来存储调用层次和局部变量。
8. Java垃圾回收器负责从不再使用的对象中回收内存,并返回给Java堆空间。
9. 当你得到java.lang.OutOfMemoryError不要惊慌,有时它只是增加堆的大小,但如果它复发那就要看看是否有Java内存泄漏。
10. 使用Profiler和Heap Dump Analyzer工具来了解Java堆空间和如何给每个对象分配多少内存。