Heim  >  Artikel  >  Java  >  Fragen zum Java-Speicherüberlauf im Vorstellungsgespräch

Fragen zum Java-Speicherüberlauf im Vorstellungsgespräch

(*-*)浩
(*-*)浩Original
2019-11-14 14:56:272976Durchsuche

Fragen zum Java-Speicherüberlauf im Vorstellungsgespräch

Es gibt viele Gründe für einen Speicherüberlauf. Die häufigsten sind folgende:

Die in den Speicher geladene Datenmenge ist zu groß, z. B. wenn zu viele Daten gleichzeitig aus der Datenbank abgerufen werden.

Es gibt Verweise auf Objekte in der Sammlungsklasse, die nach der Verwendung nicht gelöscht werden, sodass die JVM nicht recycelt werden kann >

Es gibt Endlosschleifen oder Schleifen, die zu viele doppelte Objektentitäten generieren.

FEHLER in der verwendeten Drittanbietersoftware.

Der Wert für den Startparameterspeicher ist zu klein ;

Speicherüberlauf Lösung:

Der erste Schritt besteht darin, die JVM-Startparameter zu ändern und den Speicher direkt zu erhöhen. (Vergessen Sie nicht, die Parameter -Xms und -Xmx hinzuzufügen.)

Der zweite Schritt besteht darin, das Fehlerprotokoll zu überprüfen, um zu sehen, ob vor dem „OutOfMemory“-Fehler andere Ausnahmen oder Fehler vorliegen.

Der dritte Schritt besteht darin, den Code durchzugehen und zu analysieren, um herauszufinden, wo ein Speicherüberlauf auftreten kann.

Konzentrieren Sie sich auf die folgenden Punkte:

Überprüfen Sie, ob in der Datenbankabfrage eine Abfrage vorhanden ist, um alle Daten auf einmal zu erhalten. Wenn hunderttausend Datensätze gleichzeitig in den Speicher abgerufen werden, kann es im Allgemeinen zu einem Speicherüberlauf kommen. Dieses Problem ist relativ versteckt, da weniger Daten in der Datenbank vorhanden waren und es weniger wahrscheinlich zu Problemen kam. Nach dem Online-Gehen waren mehr Daten in der Datenbank vorhanden, und eine einzelne Abfrage konnte zu einem Speicherüberlauf führen.

Versuchen Sie daher, Paging für Datenbankabfragen zu verwenden. Überprüfen Sie den Code auf Endlosschleifen oder rekursive Aufrufe. Prüfen Sie, ob es eine große Schleife gibt, die immer wieder neue Objektentitäten generiert.

Überprüfen Sie, ob eine Abfrage vorhanden ist, um alle Daten in der Datenbankabfrage abzurufen. Wenn hunderttausend Datensätze gleichzeitig in den Speicher abgerufen werden, kann es im Allgemeinen zu einem Speicherüberlauf kommen.

Dieses Problem ist relativ versteckt, da weniger Daten in der Datenbank vorhanden waren und es weniger wahrscheinlich war, dass es zu Problemen kam Speicherüberlauf verursachen.

Versuchen Sie daher, Paging für Datenbankabfragen zu verwenden.

Überprüfen Sie, ob Sammlungsobjekte wie List und MAP nach der Verwendung nicht gelöscht werden. Sammlungsobjekte wie List und MAP verfügen immer über Verweise auf die Objekte, sodass diese Objekte von GC nicht recycelt werden können.

Der vierte Schritt besteht darin, das Speicheranzeigetool zu verwenden, um die Speichernutzung dynamisch anzuzeigen.

Das obige ist der detaillierte Inhalt vonFragen zum Java-Speicherüberlauf im Vorstellungsgespräch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn