我目前的工作我的方式,通过一个项目,整个问题就来了。我写的程序需要大数,大于int可以容纳。所以,我使用了Math.BigInteger。在添加了许多BigInteger之后,我得到了OutofMemory错误。我假设这意味着数据类型不够大。是否有更大的数据类型,如果不是,我该如何解决这个问题?因为JVM运行的堆空间不足时是否有比BigInteger更大的变量类型?
回答
错误。您可以尝试使用增加
java -Xmx256m MyClass.java
Xmx- Max Heap Size
@OctopusProteins不要在Windows或终端的命令行中执行,如果是Linux然后执行程序。 – user1613360
啊,我明白了。分配保存还是需要重新执行每次重新启动? – OctopusProteins
@OctopusProteins它只是一个命令。您无需在任何地方添加代码。物理内存的默认最大堆大小为物理内存的一半,直到物理内存大小为192兆字节,否则为物理内存的四分之一,直至物理内存大小为1千兆字节。您可以在bash文件中设置它,以便它自动发生。 – user1613360
这将是更好,如果你在这里粘贴代码堆的大小,但我会尽力给与您到目前为止发布什么答案。
Java的BigIntegers是根据需要进行大的房子你使用任何操作的结果。 BigIntegers就像Integers一样没有溢出异常。从oracle文档:
算术运算的语义完全模仿Java的整数算术运算符的语义,如Java语言规范中所定义的那样。
最有可能你不是你的java程序分配足够的内存。你不知道如何执行你的Java进程,但你正在寻找这些参数来提供:
java -Xmx1024M -Xms1024M
是的,我现在正在尝试。谢谢。 – OctopusProteins
有一个变量类型除BigInteger更大?
没有没有。 Biginteger在后台使用字节数组,并在需要时为它分配更多空间。它的大小限制是可用内存。
当你使用了一半的内存时,你可能会达到极限。在这一点上,如果它需要增加它的数量,它必须首先分配一个比它使用和使用的空间更大的空间。
- 1. 在C++中是否有比long long int更大的类型?
- 2. Swift中是否有比u_long/UInt64容量更大的数字类型?
- 3. 检测是否变量是sympy类型
- 4. 在switch-case的“case”中是否有常量的变量类型?
- 5. 有没有比使用Java的BigInteger类更有效的方式来处理大量数据?
- 6. 如何比较变量以查看它是否是正确的类类型?
- 7. 如何测试变量是否是C#中的变量类型?
- 8. 是否有更快的方法来比较两个变量?
- 9. R中是否有变量complete.cases的类比?
- 10. 是否有替代的“Date”数据类型比UTC更“模糊”?
- 11. 是否可以在运行时更改AngularJS变量的类型?
- 12. 是否有一种语言可以改变变量类型?
- 13. 更改类变量类型
- 14. BigInteger是CTS支持的类型(.NET)吗?
- 15. 的BufferedReader到BigInteger的变量
- 16. C#如何比较两个变量是否是相同的类型?
- 17. 类变量是否可变?
- 18. 在drupal中,是否有可变数量值的字段类型?
- 19. C++模板变体中的类型数量是否有限?
- 20. VBA中是否有变量类型的“单元”?
- 21. GADT头中的类型变量是否有意义?
- 22. 是否有用于检查变量类型的快捷语法?
- 23. 在模板方法中,是否有方法检查当前类型是int型变量还是float型变量?
- 24. 检查类是否是使用变量的类型?
- 25. CLIPS:如何测试变量的类型是否是某个类?
- 26. 是否有一个变量可以存储相同类型的其他变量?
- 27. 检查变量double类型是否更少0
- 28. 在Xpath类型命令中添加变量是否有更好的方法? (VBA)
- 29. 是否有任何响应组比大更大的AWS
- 30. 与无变量类型的比较
不,这不是异常意味着什么。正如其名称(及其javadoc)所示,这意味着JVM内存不足。 –
好的,那么是否有可能为JVM分配更多内存?还是使用所有的系统内存? – OctopusProteins
谷歌为“是否有可能分配JVM更多的内存?”,你会得到你的答案。 Google是你的朋友。 –