我编写了以下代码将一维数组转换为2D数组。每当我将它用于小型数组时,它都可以正常工作,只要数组太大,代码就会引发java.lang.OutOfMemoryError: Java heap space
异常。
byte[][] twoD = new byte[(int)Math.ceil(xlArray.length / (double)4096)][4096];
它只是IDE中引起的问题,因为它无法访问机器上足够的堆空间或更多吗?
答案 0 :(得分:1)
IDE(任何IDE)通常会生成具有自己的内存设置的子进程。您通常可以在某种配置文件中配置它们。
在Eclipse中例如选择菜单“Run” - > “运行配置”。在“Java Application”配置中,转到“Arguments”选项卡。
在里面你可以设置VM参数。有关内存管理的信息,请查看Java Non-Standard Options。
答案 1 :(得分:0)
调用java时使用:
看看这里:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html
如果你正在使用netbeans,eclipse等ide,你可以找到Run Configurations选项 - >参数 - > VM Arguments并设置Xmx和(或)Xms。