我正在使用 Eclipse Kepler IDE 在 java 中执行非常小的程序。
我使用以下语句在运行时分配数组的大小。
unSortedArray = new int[sizeRow][sizeColumn];
所以据我所知,java程序运行时有一些自己的堆空间,比如32 MB。
对于我的程序,我认为这个空间就足够了。
我只是在运行时sizeRow=3
给出了值。sizeColumn=3
当我按下回车时,它给出了以下异常java.lang.OutOfMemoryError: Java heap space
我提出这个问题是为了了解它为什么会发生以及我们如何处理它?
我已经阅读了以下链接。
java.lang.OutOfMemoryError:Java 堆空间
如何处理“java.lang.OutOfMemoryError: Java heap space”错误(64MB 堆大小)
编辑:1
public class ArraySort
{
private int[][] unSortedArray;
private int sizeColumn, sizeRow;
private final DataInputStream dataInputStream = new DataInputStream(
System.in);
public boolean getArraySize() throws IOException
{
try
{
System.out.print("Enter the size of the row:");
sizeRow = (dataInputStream.readInt());
System.out.print("Enter the size of the column:");
sizeColumn = dataInputStream.readInt();
return false;
}
catch (NumberFormatException e)
{
System.out.println("Enter valid value for size:");
}
return true;
}
public boolean getArrayElement() throws IOException
{
unSortedArray = new int[sizeRow][sizeColumn];
for (int i = 0; i < sizeRow; i++)
{
for (int j = 0; j < sizeColumn; j++)
{
try
{
System.out.println("Enter Element [" + i + "," + j + "]");
unSortedArray[i][j] = dataInputStream.readInt();
}
catch (NumberFormatException ne)
{
System.out
.println("Enter proper Numeric value for Array Element");
return true;
}
}
}
return false;
}
}
public class ArraySortProgram
{
public static void main(String[] args) throws IOException
{
ArraySort arraySort = new ArraySort();
arraySort.getArraySize();
arraySort.getArrayElement();
}
}
就我而言,我只调用这些方法一次。