Fleischsalat
Cadet 3rd Year
- Registriert
- Jan. 2013
- Beiträge
- 48
Hallo zusammen,
ich habe bei einem von mir geschriebenen Programm obige Fehlermeldung bekommen.
Komplette Fehlermeldung:
"A error occured in a file for which the source cannot be found:
class: source line number: sun.reflect.NativeConstructorAccessorImpl: -2:
java.lang.OutOfMemoryError: Java heap space (in sun.reflect.NativeConstructorAccessorImpl )"
Ich benutze BlueJ (bitte nicht damit kommen, dass das schlecht is, mir reichts, ist nur für die Schule).
Hier der Quellcode:
import java.util.*;
public class Modulo10 {
private ArrayList<byte[]> liste;
public Modulo10() {
liste = new ArrayList<byte[]>();
for(byte a = 0; a < 10; a++)
{
for(byte b = 0; b < 10; b++)
{
for(byte c = 0; c < 10; c++)
{
for(byte d = 0; d < 10; d++)
{
for(byte e = 0; e < 10; e++)
{
for(byte f = 0; f < 10; f++)
{
for(byte g = 0; g < 10; g++)
{
for(byte h = 0; h < 10; h++)
{
byte[] feld = new byte[10];
feld[0]=a;
feld[1]=b;
feld[2]=c;
feld[3]=d;
feld[4]=e;
feld[5]=f;
feld[6]=g;
feld[7]=h;
liste.add(feld);
}
}
}
}
}
}
}
}
}
}
Letztendlich werden 10 Milliarden Felder erschaffen, die in einer Arraylist gespeichert werden sollen. (bis jetzt sinds noch nich alle, ich hab nur geschaut wie viel ich wegmachen muss, bis der Fehler nicht mehr auftaucht, jetzt sinds wieder zu viele).
Damit sollen schlussendlich Prüfzifferverfahrn wie die ISBN allgemein gelöst werden können, aber das ist ja hier nicht wichtig (ich finds selber auch nicht so sinnvoll, es ist einfacher sie einzeln zu implementieren, aber mein Infolehrer wills halt....).
Wie kann ich diesen Fehler denn umgehen? Und es sollte auch möglichst leicht auf anderen PCs gehen, denn das Programm ist Teil meiner Facharbeit und muss letztendlich auch auf dem Pc meines Lehrers laufen, wenn der sie dann korrigiert.
Schonmal Danke für die Hilfe
MfG Fleischsalat
PS: ich bin jetzt nicht so der Programmierprofi, mit der Schulinformatik komm ich zwar spielend zurecht, aber das wars dann auch schon, also bitte versuchen einigermaßen verständlich zu antworten, danke
ich habe bei einem von mir geschriebenen Programm obige Fehlermeldung bekommen.
Komplette Fehlermeldung:
"A error occured in a file for which the source cannot be found:
class: source line number: sun.reflect.NativeConstructorAccessorImpl: -2:
java.lang.OutOfMemoryError: Java heap space (in sun.reflect.NativeConstructorAccessorImpl )"
Ich benutze BlueJ (bitte nicht damit kommen, dass das schlecht is, mir reichts, ist nur für die Schule).
Hier der Quellcode:
import java.util.*;
public class Modulo10 {
private ArrayList<byte[]> liste;
public Modulo10() {
liste = new ArrayList<byte[]>();
for(byte a = 0; a < 10; a++)
{
for(byte b = 0; b < 10; b++)
{
for(byte c = 0; c < 10; c++)
{
for(byte d = 0; d < 10; d++)
{
for(byte e = 0; e < 10; e++)
{
for(byte f = 0; f < 10; f++)
{
for(byte g = 0; g < 10; g++)
{
for(byte h = 0; h < 10; h++)
{
byte[] feld = new byte[10];
feld[0]=a;
feld[1]=b;
feld[2]=c;
feld[3]=d;
feld[4]=e;
feld[5]=f;
feld[6]=g;
feld[7]=h;
liste.add(feld);
}
}
}
}
}
}
}
}
}
}
Letztendlich werden 10 Milliarden Felder erschaffen, die in einer Arraylist gespeichert werden sollen. (bis jetzt sinds noch nich alle, ich hab nur geschaut wie viel ich wegmachen muss, bis der Fehler nicht mehr auftaucht, jetzt sinds wieder zu viele).
Damit sollen schlussendlich Prüfzifferverfahrn wie die ISBN allgemein gelöst werden können, aber das ist ja hier nicht wichtig (ich finds selber auch nicht so sinnvoll, es ist einfacher sie einzeln zu implementieren, aber mein Infolehrer wills halt....).
Wie kann ich diesen Fehler denn umgehen? Und es sollte auch möglichst leicht auf anderen PCs gehen, denn das Programm ist Teil meiner Facharbeit und muss letztendlich auch auf dem Pc meines Lehrers laufen, wenn der sie dann korrigiert.
Schonmal Danke für die Hilfe
MfG Fleischsalat
PS: ich bin jetzt nicht so der Programmierprofi, mit der Schulinformatik komm ich zwar spielend zurecht, aber das wars dann auch schon, also bitte versuchen einigermaßen verständlich zu antworten, danke