Eclipse Kepler IDE を使用して Java で非常に小さなプログラムを実行しています。
次のステートメントを使用して、実行時に配列のサイズを割り当てています。
unSortedArray = new int[sizeRow][sizeColumn];
私の知る限り、Javaプログラムは32 MBのような独自のヒープスペースで実行されます。
私のプログラムでは、このスペースで十分だと思います。
実行時に値sizeRow=3
を指定しただけです。sizeColumn=3
そして、Enterキーを押すと、次の例外が発生します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();
}
}
私の場合、これらのメソッドを一度だけ呼び出しています。