Ich übe Java-fresher interview Coding-Beispiele. Ich versuche, ein Programm zu schreiben, um doppelte Nummern zwischen 1
bis N
zu finden, wobei N vom Benutzer zusammen mit den Zahlen selbst angegeben wird. Hier ist der Code:OutOfMemoryError: Java-Heap-Speicher beim Versuch, 5 Ints in ein Array zu lesen
import java.io.DataInputStream;
import java.io.IOException;
public class DuplicateNumbers {
public static void main(String[] args) throws IOException {
DataInputStream in = new DataInputStream(System.in);
System.out.println(" Enter the number of numbers ");
int a = in.readInt();
int[] num = new int[a];
System.out.println(" Enter the ints one by one ");
for (int b = 0; b < a; b++) {
System.out.println(" Enter no "+(b+1));
num[b]=in.readInt();
}
int c = 0;
for (int d = 0; d < a; d++) {
int f = 0;
c = num[d];
for (int e=0; e<a; e++) {
if (c==num[e]) {
f++;
}
}
if(f > 1)
System.out.println(" Duplicate number "+c);
}
}
}
Aber ich bin immer folgende Fehlermeldung in Eclipse Neon:
Enter the number of numbers
5
Exception in thread "main" java.lang.OutOfMemoryError:
Java heap space at DuplicateNumbers.main(DuplicateNumbers.java:14)
Was ist falsch? Warum der JVM-Heap-Speicherfehler? Code kompiliert und läuft gut.
Nun, es ** nicht ** * „gut laufen“ *, das ist, warum Sie hier sind über die Ausnahme fragen ... Ist es auf der Linie abstürzen 'int [] num = new int [a];' Haben Sie versucht, Breakpoints hinzuzufügen und den Code zu debuggen? – luk2302
Wo haben Sie gelernt, wie DataInputStream Benutzereingaben lesen konnte? –
Nein, Sir, ich versuche nicht, irgendjemandes Code zu kopieren. Ich habe nur eine Liste mit Programmen, die ich selbst programmieren kann, und wenn ich keine Logik und Geduld mehr habe, bitte ich um Hilfe. –