[Java] Différence entre l'erreur de débordement de pile et l'erreur de mémoire insuffisante

Une note de ce que j'ai recherché en étudiant Java Silver.

Quelle est la différence entre StackOverflowError et OutOfMemoryError?

Qu'est-ce que StackOverflowError?

Classe StackOverflowError Erreur causée par un manque de mémoire dans la ** zone de pile **

[Exemple de situations qui se produisent] Faire un ** appel récursif ** dans une méthode

[Qu'est-ce qu'une zone de pile] Une zone de mémoire qui stocke ** les informations de variable locale et de méthode ** Comme son nom l'indique, il a une structure de données de type pile (méthode du dernier entré, premier sorti).

Si vous continuez à appeler votre propre méthode dans la méthode, les informations de méthode s'accumuleront dans la zone de pile et vous serez percé. Ensuite, la JVM (Java Virtual Machine) détecte que la zone de pile est insuffisante et déclenche une StackOverflowError.

Qu'est-ce que OutOfMemoryError?

Classe OutOfMemoryError

Lancé lorsque la machine virtuelle Java ne peut pas allouer un objet en raison d'un manque de mémoire et que le garbage collector ne peut plus allouer de mémoire disponible.

Erreur causée par un manque de mémoire dans la ** zone de tas **

[Exemple de situations qui se produisent] ** Une boucle infinie ** se produit (Référence: Understanding OutOfMemoryError Exceptions)

[Qu'est-ce que la zone de tas] Une zone pour stocker les informations ** instance **.

Résumé

Une StackOverflowError se produit lorsque la mémoire (pile) allouée à la JVM est pleine. Si la JVM ne parvient pas à allouer de la mémoire, une erreur OutOfMemoryError se produit.

Les références

・ [Quelle est la zone de pile](http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000987.html#:~:text=%E3%83%A1%E3%83%A2%E3% 83% AA% E4% B8% 8A% E3% 81% AE% E3% 80% 81% E3% 83% AD% E3% 83% BC% E3% 82% AB% E3% 83% AB% E5% A4% 89% E6% 95% B0,% E6% A0% BC% E7% B4% 8D% E3% 81% 99% E3% 82% 8B% E9% A0% 98% E5% 9F% 9F% E3% 81% AE % E3% 81% 93% E3% 81% A8% E3% 80% 82 & text = JVM% E3% 81% 8C% E4% BD% BF% E7% 94% A8% E3% 81% 99% E3% 82% 8B % E3% 83% A1% E3% 83% A2% E3% 83% AA,% E7% 8A% B6% E3% 81% AB% E6% A0% BC% E7% B4% 8D% E3% 81% 95% E3% 82% 8C% E3% 82% 8B% E3% 80% 82)

Recommended Posts

[Java] Différence entre l'erreur de débordement de pile et l'erreur de mémoire insuffisante
[Java] Différence entre == et égal
[Java] Différence entre Hashmap et HashTable
[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence
[Java] Différence entre array et ArrayList
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
Différence entre pop () et peek () dans la pile
[Pour les débutants] Différence entre Java et Kotlin
Différence entre isEmpty et isBlank de StringUtils
[Java] Différence entre la plage Intstream et la plageClosed
Différence entre int et Integer en Java
[Java] Comprendre la différence entre List et Set
Différence entre next () et nextLine () dans Java Scanner
[Java] Mémo de classification d'erreur de compilation et d'erreur d'exécution
Différence entre le membre et la collection de rails routes.rb
[Java] Différence entre "variable finale" et "objet immuable"
Différence entre vh et%
Différence entre i ++ et ++ i
[Java] Différence entre statique final et final dans les variables membres
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
[Java débutant] Différence entre la longueur et la longueur () ~ Je ne sais pas ~
Différence entre produit et variante
[Docker-compose] Différence entre env_file et environnement. À propos de la priorité de l'application de variable d'environnement
Différence entre redirect_to et render
[Java] Zone de pile et zone statique
Différence entre Java et JavaScript (comment trouver la moyenne)
Différence entre redirect_to et render
Différence entre CUI et GUI
Différence entre les variables et les variables d'instance
Différence entre mockito-core et mockito-all
Différence entre classe et instance
Différence entre l'installation de bundle et de bundle
[Java] Vérifiez la différence entre orElse et orElseGet avec IntStream
Différence entre ArrayList et LinkedList
Différence entre render et redirect_to
Différence entre List et ArrayList
java Generics T et? Différence
Avantages et inconvénients de Java
Différence entre .bashrc et .bash_profile
Différence entre StringBuilder et StringBuffer
Différence entre render et redirect_to
Résumé du traitement des erreurs Java
L'évaluation des courts-circuits est-elle vraiment rapide? Différence entre && et & en Java
Sortie de la différence entre chaque champ de deux objets en Java
Après avoir basculé entre les versions Java 8 et 11, une erreur se produit lors de la confirmation
Différence entre l'étiquette d'interface utilisateur par habillage de caractères et par habillage de mots dans l'affichage japonais
[Java] Quelle est la différence entre form, entity et dto? [Haricot]
[Ruby] Différence entre obtenir et publier
Différence entre la méthode d'instance et la méthode de classe
Différence entre interface et classe abstraite
Différence entre l'opérateur == et la méthode égale
Différences entre Java "débutant" et Kotlin
À propos de Biocontainers fastqc et Java