java主要是什么 java heap space什么意思?

java heap space什么意思?使用java程序从数据库查询大量数据时发生异常:java.lang.OutOfMemoryError错误:如果98%的时间花在GC上,并且可用堆大小小于2%,J

java heap space什么意思?

使用java程序从数据库查询大量数据时发生异常:java.lang.OutOfMemoryError错误:如果98%的时间花在GC上,并且可用堆大小小于2%,JVM中的Java堆空间将引发此异常。JVM堆的设置是指在Java程序运行过程中JVM可以分配和使用的内存空间的设置。堆大小的值将在JVM启动时自动设置。初始空间(即-XMS)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以使用JVM提供的-XMN-XMS-Xmx和其他选项进行设置。例如:Java-Jar-xmn16m-xms64m-xmx128m我的应用程序.jar如果堆大小设置太小,除了这些异常信息外,程序的响应速度也会比较慢。GC占用更多的时间,而应用程序分配的执行时间更少。最大堆大小不应超过可用物理内存的80%。通常,-XMS和-Xmx的选项应该设置为相同,-XMN应该是-Xmx的1/4。堆大小的-XMS-XMN设置不应超过物理内存的大小。否则会提示“初始化VM时出错,无法为对象堆保留足够的空间”。