1. Débordement du tas, Le tas stocke les objets d'instance, mais tôt ou tard, la zone du tas sera pleine. Si la mémoire de la zone de tas est définie, une exception sera levée lors de sa création.
public class HeapOOM { static class User {} public static void main(String[] args) { List<User> list = new ArrayList<User>(); while (true) { list.add(new User()); } } } /*Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded at com.fdd.test.HeapOOM.main(HeapOOM.java:11)*/
2. Débordement de pile de machine virtuelle et de pile de méthodes locales
Si la profondeur de pile requise par le thread est supérieure à la profondeur autorisée par le verrouillage de la machine virtuelle, une exception StackOverflowError sera levée.
Si la machine virtuelle ne peut pas demander suffisamment d'espace de stockage lors de l'extension de la pile, une exception se produira.
public class StackOutOfMemoryError { public static void main(String[] args) { test(); } private static void go() { System.out.println("StackOverflowError异常"); test(); } } /*Exception in thread "main" java.lang.StackOverflowError at sun.nio.cs.ext.DoubleByte$Encoder.encodeLoop(DoubleByte.java:617) at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:579) at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:271) at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125) at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207) at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129) at java.io.PrintStream.write(PrintStream.java:526) at java.io.PrintStream.print(PrintStream.java:597) at java.io.PrintStream.println(PrintStream.java:736) at com.fdd.test.StackOutOfMemoryError.go(StackOutOfMemoryError.java:11) at com.fdd.test.StackOutOfMemoryError.go(StackOutOfMemoryError.java:13)*/
3. Débordement de la zone de méthode et du pool constant d'exécution
4. Débordement de mémoire directe native
La capacité de DirectMemory peut être spécifiée via -XX:MaxDirectMemorySize Si elle n'est pas spécifiée, la valeur par défaut est la valeur du tas Java. (- Xmx spécifié) sont les mêmes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!