我目前的工作我的方式,通過一個項目,整個問題就來了。我寫的程序需要大數,大於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是你的朋友。 –