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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 花开~的季节 黑马帝   /  2012-3-5 11:22  /  3680 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中怎么知道堆内存有多大呢

4 个回复

倒序浏览
堆内存是存储数组的,堆内存是根据数组的长度开辟的。一般就是数组的长度
回复 使用道具 举报
额,是这样的:
          在大多数32位机、Sun的JVM上,Java的堆空间默认的大小为128MB,但也有例外,
   例如在32未Solaris操作系统(SPARC平台版本)上,默认的最大堆空间和起始堆空间大小为 -Xms=3670K   和 -Xmx=64M。对于64位操作系统,一般堆空间大小增加约30%。但你使用Java 1.5的throughput垃圾回收器,默认最大的堆大小为物理内存的四分之一,而起始堆大小为物理内存的十六分之一。要想知道默认的堆大小
的方法,可以用默认的设置参数打开一个程序,使用JConsole(JDK 1.5之后都支持)来查看,在VM Summary页面可以看到最大的堆大小。

      用这种方法你可以根据你的程序的需要来改变堆内存大小,我强烈建议采用这种方法而不是默认值。如果你的程序很大,有很多对象需要被创建的话,你可以用-Xms and -Xmx这两个参数来改变堆内存的大小。Xms表示起始的堆内存大小,Xmx表示最大的堆内存的大小。另外有一个参数 -Xmn,它表示new generation(后面会提到)的大小。有一件事你需要注意,你不能任意改变堆内存的大小,你只能在启动JVM时设定它。
回复 使用道具 举报
嗯 还可以存储new出来的对象
我记得java sdk里有个gui的控制台可以查看heap memory的大小。
在win下,以命令行批处理文件直接启动java程序时,可以修改参数实现改变分配给java虚拟机内存的大小。
不知道对你有没有帮助
回复 使用道具 举报
堆内存大小看你定义多少数组,一些没有用的数据会在一段时间内自动释放
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马