j2me 设备中的“最大堆大小 = 无限”是啥意思?
Posted
技术标签:
【中文标题】j2me 设备中的“最大堆大小 = 无限”是啥意思?【英文标题】:What does mean "Maximum Heap Size = Unlimited" in a j2me device?j2me 设备中的“最大堆大小 = 无限”是什么意思? 【发布时间】:2012-02-09 21:37:54 【问题描述】:j2me 设备中的“最大堆大小 = 无限制”是什么意思? 以设备为例: http://www.developer.nokia.com/Devices/Device_specifications/E71/
我可以增加应用的堆大小吗?
【问题讨论】:
不确定(几年前我上次开发 j2me 应用程序),但我认为这意味着 Java VM 不限于某些“特殊”堆数量,而是使用设备的全部可用 RAM - 相反到支持 j2me 的旧设备,这些设备对本机应用程序和 midlet 有单独的内存限制。 NokiaE7(以上链接)可用的本机 RAM 内存为 128 MB,但在 midlet 中,总内存为 = 150 KB 【参考方案1】:Heap Memory
在编程中是指为运行时(即程序实际执行时)创建的数据保留的内存区域。相反,堆栈是用于存储数据的内存区域,其大小可以在程序编译时确定。
Java 堆是分配给 JVM 应用程序的堆大小,它负责处理正在创建的新对象。如果正在创建的对象超过堆大小,则会抛出 memoryOutof Bound 错误
Java's default heap size limit is 128MB
。如果您需要更多,您应该在启动程序时使用 -Xms 和 -Xmx 命令行参数:
java -Xms -Xmx
我们也可以用这种格式给出类似的格式。格式是:-mx256m..如果你使用它有时会显示错误
java -Xms -Xmx 格式..在这种情况下使用 -mx256m this.value 可以更改..
【讨论】:
以上是关于j2me 设备中的“最大堆大小 = 无限”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章