java.lang.OutOfMemoryError : Java heap space

Spielte ich mit einigen Beispielen von Sammlungen von Oracle-website

public class Timing {

    public static void method(){

        List numbers = new ArrayList();

        for (double i = 1; i <= Double.MAX_VALUE; i++)
        numbers.add(new Double(i));

        Collections.shuffle(numbers);
        List winningcombination = numbers.subList(0, 10);
        Collections.sort(winningcombination);
    }

    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();
        method();
        long end = System.currentTimeMillis();
        System.out.println("time elapsed : " + (end-start));
    }
}

Habe ich versucht, um zu sehen, wie lange es dauern wird, es zu tun für das Doppelte.MAX_VALUE. Und ich habe diese :

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.ArrayList.ensureCapacity(Unknown Source)
    at java.util.ArrayList.add(Unknown Source)

Ich da eine Möglichkeit dieses Problem zu beheben ?

Die eigentliche exception passiert, wenn die ArrayList wählt, um zu wachsen (und eine Kopie der alten Inhalte auf die neue backing-array)

InformationsquelleAutor Wassim AZIRAR | 2011-08-10

Schreibe einen Kommentar