Maison Java JavaBase Comprendre le concept de GC en JAVA en 3 minutes

Comprendre le concept de GC en JAVA en 3 minutes

Nov 30, 2019 pm 04:36 PM
gc 概念

Comprendre le concept de GC en JAVA en 3 minutes

Préface

GC (Garbage Collection) est un obstacle inévitable dans le processus d'apprentissage de JVM. Ensuite, passons. étudier systématiquement la GC.

Comprendre le concept de GC en JAVA en 3 minutes

Avant de faire quelque chose, nous devons savoir pourquoi nous le faisons. Cela ne fait pas seulement référence à GC, mais s'applique également à notre étude et à notre vie quotidienne. ce n'est que si vous savez pourquoi que vous pourrez combattre sans danger.

(Vidéo recommandée : tutoriel vidéo Java)

Comprenons d'abord pourquoi il existe un GC et quel rôle joue le GC dans la JVM. Quel effet a-t-il eu ?

Pourquoi y a-t-il un GC ?

Les étudiants qui ont utilisé C++ savent peut-être que la mémoire occupée par un objet est occupée jusqu'à la fin du programme et ne peut être allouée qu'après est explicitement diffusé sur d'autres objets. Si nous ne nettoyons pas manuellement ces objets inutiles, la mémoire sera bientôt remplie. Dans la JVM, le GC joue le rôle d'un récupérateur. Il peut nous aider à déterminer quels objets sont inutiles et comment procéder. les stratégies qui déterminent la génération et l'allocation de mémoire**.

Certains étudiants peuvent se demander, puisque notre JVM fera le travail de GC pour nous, pourquoi devons-nous apprendre GC ? N'est-il pas préférable de tout laisser à la JVM ? Bien sûr, dans notre vie quotidienne, nous ne nous soucions généralement pas de certains détails du GC, mais lorsque nous rencontrons des fuites de mémoire, des débordements de mémoire et des goulots d'étranglement de concurrence élevés, nous devons opérer sur GC et effectuer une analyse plus détaillée.

Fuite de mémoire : fait référence à la mémoire tas allouée dynamiquement dans le programme qui n'est pas libérée ou ne peut pas être libérée pour une raison quelconque, entraînant un gaspillage de mémoire système, un ralentissement du programme ou même des pannes du système. et d'autres conséquences graves.

Débordement de mémoire : il y a de la mémoire irrécupérable dans le système d'application ou trop de mémoire est utilisée, ce qui amène finalement le programme à utiliser plus de mémoire que la mémoire maximale qu'il peut fournir.

Alors maintenant la question est, nous devons faire la collecte des ordures, nous devons d'abord savoir où se trouvent les ordures

Où sont les ordures

Front Nous avons parlé de la zone de mémoire d'exécution de la JVM, et nous savons que les threads peuvent être divisés en zones exclusives de thread et zones partagées de thread. Le cycle de vie de la mémoire de la zone exclusive de thread (compteur de programme, machine virtuelle). pile, pile de méthodes locales) est cohérente avec le thread, et La taille de la mémoire allouée dans ces zones est liée à la taille de la classe. En d'autres termes, lorsque notre structure de classe est corrigée, cette partie de la mémoire ne changera pas, et. lorsque la méthode ou le thread se termine, la mémoire suivra naturellement. Elle est recyclée.

La mémoire du tas et la zone de méthode dans la zone partagée du thread sont différentes. La mémoire utilisée dans la mémoire du tas et la zone de méthode ne peuvent pas être déterminées. lors de la compilation, car différentes implémentations d'une interface, une méthode Le code exécuté par différentes branches de conditions de contrôle peut être complètement opposé. Nous savons seulement quels objets seront créés au moment de l'exécution. L'allocation et le recyclage de cette partie de la mémoire sont dynamiques, et notre. GC se concentre sur cette partie de la mémoire.

Par exemple : si la JVM est une voiture, la zone exclusive du thread est comme les pièces. La durée de vie de ces pièces est essentiellement connue à leur sortie d'usine, et la zone partagée du thread est comme l'essence, la consommation. La consommation d'essence est liée à l'itinéraire que nous empruntons, donc ce qui nous préoccupe est que cette partie va changer de manière dynamique, comme par exemple comment conduire de manière plus économe en carburant ~

Cet article provient du site Web chinois php, Tutoriel JavaColonne, bienvenue pour apprendre !

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que signifie le concept de métaverse ? Que signifie le concept de métaverse ? Feb 22, 2024 pm 03:55 PM

Le Metaverse est un monde illusoire qui utilise la technologie pour cartographier et interagir avec le monde réel. Analyse 1 Metaverse [Metaverse] est un monde illusoire qui utilise pleinement les méthodes technologiques pour relier et créer, et cartographie et interagit avec le monde réel. C'est un espace vivant de données avec le dernier système de développement social. L’univers bidimensionnel est essentiellement une technologie virtuelle et un processus numérique du monde réel, qui nécessite de nombreuses transformations de la production de contenu, du système économique, de l’expérience client et du contenu du monde physique. 3 Cependant, la tendance au développement du métaverse est progressive. Il se forme finalement par la combinaison et l'évolution continue de nombreux outils et plates-formes avec le soutien d'une infrastructure, de normes et de protocoles partagés. Supplément : De quoi est composé le métaverse ? 1 Le métaverse est composé de Meta et de Verse, Meta est la transcendance et V

Maîtriser les concepts clés de Spring MVC : comprendre ces fonctionnalités importantes Maîtriser les concepts clés de Spring MVC : comprendre ces fonctionnalités importantes Dec 29, 2023 am 09:14 AM

Comprendre les fonctionnalités clés de SpringMVC : pour maîtriser ces concepts importants, des exemples de code spécifiques sont nécessaires. SpringMVC est un cadre de développement d'applications Web basé sur Java qui aide les développeurs à créer des structures flexibles et évolutives via le modèle architectural Model-View-Controller (MVC). application Web. Comprendre et maîtriser les fonctionnalités clés de SpringMVC nous permettra de développer et de gérer nos applications Web plus efficacement. Cet article présentera quelques concepts importants de SpringMVC

En savoir plus sur les principes fondamentaux et les fonctionnalités de Gunicorn En savoir plus sur les principes fondamentaux et les fonctionnalités de Gunicorn Jan 03, 2024 am 08:41 AM

Concepts et fonctions de base de Gunicorn Gunicorn est un outil permettant d'exécuter des serveurs WSGI dans des applications Web Python. WSGI (Web Server Gateway Interface) est une spécification définie par le langage Python et permet de définir l'interface de communication entre les serveurs web et les applications web. Gunicorn permet de déployer et d'exécuter des applications Web Python dans des environnements de production en implémentant la spécification WSGI. La fonction de Gunicorn est de

Discussion sur la stratégie d'optimisation gc de Golang Discussion sur la stratégie d'optimisation gc de Golang Mar 06, 2024 pm 02:39 PM

Le garbage collection (GC) de Golang a toujours été un sujet brûlant parmi les développeurs. En tant que langage de programmation rapide, le garbage collector intégré de Golang peut très bien gérer la mémoire, mais à mesure que la taille du programme augmente, certains problèmes de performances surviennent parfois. Cet article explorera les stratégies d'optimisation GC de Golang et fournira quelques exemples de code spécifiques. La collecte des déchets dans le garbage collector de Golang Golang est basée sur un balayage de marque simultané (concurrentmark-s

Introduction et concepts de base d'Oracle RAC Introduction et concepts de base d'Oracle RAC Mar 07, 2024 am 11:39 AM

Introduction et concepts de base d'OracleRAC (RealApplicationClusters) À mesure que la quantité de données d'entreprise continue de croître et que la demande de haute disponibilité et de hautes performances devient de plus en plus importante, la technologie des clusters de bases de données devient de plus en plus importante. OracleRAC (RealApplicationClusters) est conçu pour résoudre ce problème. OracleRAC est une solution de base de données cluster haute disponibilité et hautes performances lancée par Oracle.

Écrire un programme Java pour calculer l'aire et le périmètre d'un rectangle en utilisant le concept de classes Écrire un programme Java pour calculer l'aire et le périmètre d'un rectangle en utilisant le concept de classes Sep 03, 2023 am 11:37 AM

Le langage Java est aujourd’hui l’un des langages de programmation orientés objet les plus utilisés dans le monde. Le concept de classes est l’une des caractéristiques les plus importantes des langages orientés objet. Une classe est comme un modèle pour un objet. Par exemple, lorsque nous voulons construire une maison, nous créons d’abord un plan de la maison, en d’autres termes, nous créons un plan qui montre comment nous allons construire la maison. Selon ce plan, nous pouvons construire de nombreuses maisons. De même, en utilisant des classes, nous pouvons créer de nombreux objets. Les classes sont des plans pour créer de nombreux objets, où les objets sont des entités du monde réel telles que des voitures, des vélos, des stylos, etc. Une classe possède les caractéristiques de tous les objets, et les objets ont les valeurs de ces caractéristiques. Dans cet article, nous allons écrire un programme Java pour trouver le périmètre et les faces d'un rectangle en utilisant le concept de classes

Qu'est-ce que le répertoire personnel d'Oracle ? Explication détaillée du concept et de la fonction du répertoire personnel Oracle Qu'est-ce que le répertoire personnel d'Oracle ? Explication détaillée du concept et de la fonction du répertoire personnel Oracle Mar 08, 2024 am 08:18 AM

Titre : Catalogue principal Oracle : concepts, fonctions et exemples de code Le catalogue principal (MasterCatalog) de la base de données Oracle constitue la structure de répertoires de base de la base de données et est utilisé pour stocker les métadonnées sur les objets de la base de données et d'autres informations sur la base de données. Le répertoire personnel joue le rôle de centre de gestion de la base de données, enregistrant des informations sur tous les objets de la base de données, tels que les tables, les index, les vues, les utilisateurs, etc., et comprend également des informations de configuration de la base de données et des informations d'autorisation. Dans la base de données Oracle, la notion de répertoire personnel est très importante, elle est utilisée

Découvrir les secrets de la récursion Java : de la théorie à l'application Découvrir les secrets de la récursion Java : de la théorie à l'application Jan 30, 2024 am 10:07 AM

Explorer les mystères de la récursion Java : du concept à la pratique Introduction : La récursion est une technique de programmation importante en informatique et est largement utilisée dans de nombreux algorithmes et structures de données. En tant que langage de programmation populaire, Java fournit également un puissant mécanisme récursif. Cet article vous amènera à explorer les mystères de la récursivité Java en analysant les concepts, principes et applications pratiques de la récursivité. 1. Concept et principe de récursion 1.1 Définition de la récursion La récursion signifie que lors de la résolution d'un problème, le problème est décomposé en sous-problèmes plus petits ayant la même structure et résolu en s'appelant lui-même.

See all articles