既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢
伊谢尔伦
伊谢尔伦 2017-04-18 10:49:43
0
10
832

既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(10)
Ty80

Les ressources mémoire sont limitées. La collecte des déchets ne recycle que les "déchets". Les objets utiles à l'exécution de votre programme ne seront pas recyclés.

小葫芦

Il existe deux situations de débordement de mémoire : l'une est un débordement de pile, comme l'appel d'une récursivité infinie. Il y a aussi un débordement de tas, c'est-à-dire que l'objet qui sort du nouveau n'est pas détruit immédiatement, comme le nouveau tout le temps.

黄舟

Parce que certains programmes mal écrits créeront des objets à l'infini avant que le mécanisme GC ne prenne effet.

大家讲道理

De manière générale, les fuites de mémoire en Java font référence au fait que la mémoire allouée qui n'est plus nécessaire au programme ne peut pas être récupérée.
Le mécanisme de récupération de place détermine si la mémoire peut être récupérée grâce à l'accessibilité de l'objet et de l'objet racine. Cependant, en raison d'erreurs de programmation ou pour d'autres raisons, les références d'objet expirées sont toujours conservées et le garbage collector ne peut pas récupérer les éléments associés. espace.

伊谢尔伦

Il ne peut rien faire s'il occupe la bouche d'égout et ne fait pas caca.
Je vous recommande de lire le blog écrit par mon collègue : http://blog.csdn.net/zhanggan...

Peter_Zhu

Certains objets ne sont plus nécessaires mais sont toujours référencés et ne peuvent pas être recyclés

PHPzhong

Pour l'instant, les choses créées par les humains ne peuvent pas surpasser les humains eux-mêmes. L'algorithme GC de Java a été écrit par des humains. Cependant, certaines personnes risqueront leur vie et écriront du code qui ne peut pas être recyclé par GC

.
小葫芦

C'est la même chose que 中国那么大,为什么还有人在朝阳区懵逼.

PHPzhong

Ma propre compréhension, veuillez me corriger si je me trompe.
Dans JDK6, une méthode de String est appelée subString, qui est utilisée pour générer une sous-chaîne. Pour une génération plus rapide, String a un constructeur,
String(int offset, int count, char value[]) {

this.value = value;
this.offset = offset;
this.count = count;

}
pointe directement vers le tableau String d'origine. Nous savons tous qu'une nouvelle chaîne String dans le pool constant sera générée à chaque fois. Cependant, cette référence empêche le recyclage de la chaîne d'origine. Parce que la valeur de subString le désignera. Cela entraînera des fuites de mémoire.

La JVM effectue le GC toute seule sans trop d'interférence des programmeurs. Cependant, en raison de certaines opérations incorrectes, certains objets qui n'ont plus besoin d'être utilisés ont encore des références, ce qui entraîne des fuites de mémoire.

洪涛

JVM : les programmeurs s'accrochent aux ordures, ce qui me met très gêné.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal