Maison Java javaDidacticiel Fonctionnalités avancées JVM--Introduction à la zone de structure de la mémoire Java

Fonctionnalités avancées JVM--Introduction à la zone de structure de la mémoire Java

Jun 26, 2017 am 10:21 AM
java 内存 特性 结构 高级

Division des régions :

Lors de l'exécution du programme, la machine virtuelle Java divise la mémoire en plusieurs zones avec différentes fonctions, comme indiqué ci-dessous :

Cette image répertorie les différentes zones de division de la mémoire, parmi lesquelles

Thread-private : compteur de programme, pile de machine virtuelle, local méthode Stack

Thread partagé : tas, zone de méthode

Ce qui suit présentera les fonctions et les fonctions de chaque zone une par une

Compteur de programme :

1. Le compteur de programme est principalement utilisé pour pointer vers le numéro de ligne de bytecode en cours d'exécution. Chaque thread a un compteur de programme distinct qui n'est pas partagé avec chacun. autre. En modifiant ce compteur Pointez sur le numéro de ligne du bytecode pour exécuter le programme

2. Les boucles, les sauts, la gestion des exceptions et d'autres mécanismes reposent tous sur ce compteur pour terminer

3. Si le Le programme exécute un programme Java, il pointe vers le bytecode en cours d'exécution. Si la méthode native est exécutée, sa valeur est vide

  pile de machine virtuelle Java :

1. La pile de la machine virtuelle est privée au thread Chaque méthode créera un cadre de pile lors de l'exécution, qui est utilisé pour stocker des informations telles que les tables de variables locales, les sorties de méthode, les liens dynamiques, et les piles d'opérandes.,

2. Le processus d'exécution de chaque méthode est le processus d'une pile de machine virtuelle, de l'insertion à l'extraction

Beaucoup de gens disent souvent que la mémoire Java est divisée en tas. mémoire et mémoire de pile. La mémoire de pile fait référence à la pile de machine virtuelle

La table de variables locales mentionnée ci-dessus stocke principalement les types de données de base (intbytecharlong, etc.) connus du compilateur, les références d'objet et les types d'adresses de retour.

Extension :

Référence d'objet : Pas l'objet lui-même, il peut s'agir d'un pointeur de référence pointant vers l'adresse de départ de l'objet, il peut s'agir d'un handle représentant l'objet ou d'autres emplacements associés

returnaddress : n'est pas un type dans l'API Java et ne peut pas être appelé par nous. Il pointe vers l'adresse d'une instruction de bytecode

 Local. pile de méthodes

  Semblable à la pile de machines virtuelles, c'est la mémoire qui sert les méthodes natives

 Tas Java

La mémoire tas est une mémoire partagée par thread. Son objectif principal est de stocker des objets et constitue également la zone principale gérée par le garbage collector.

Le tas Java est divisé en. la nouvelle génération et l'ancienne génération, en particulier sur le mécanisme de collecte des ordures, seront présentées dans les articles suivants

Zone de méthode (également appelée non-tas)

C'est aussi une mémoire partagée, utilisée pour stocker les informations de classe chargées, les constantes, les variables statiques, le code compilé par le compilateur juste à temps, etc.

Constante d'exécution pool : Il fait partie de la zone méthode et est utilisé pour stocker divers littéraux et symboles générés par le compilateur. Citation

Mémoire directe :

Il ne fait pas partie de la zone de données d'exécution de la machine virtuelle et n'appartient pas à la mémoire gérée par la JVM

  Dans NIO, vous pouvez utiliser la fonction native pour allouer directement de la mémoire directe, et faites-le fonctionner via l'objet DirectByteBuffer en java comme référence à cette mémoire

Avantages : enregistre les étapes de copie de la mémoire et est plus efficace Rapide

Inconvénients : difficile à contrôler, facile à provoquer de la mémoire fuites

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)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Des sources affirment que Samsung Electronics et SK Hynix commercialiseront de la mémoire mobile empilée après 2026 Des sources affirment que Samsung Electronics et SK Hynix commercialiseront de la mémoire mobile empilée après 2026 Sep 03, 2024 pm 02:15 PM

Selon des informations publiées sur ce site Web le 3 septembre, le média coréen etnews a rapporté hier (heure locale) que les produits de mémoire mobile à structure empilée « de type HBM » de Samsung Electronics et SK Hynix seraient commercialisés après 2026. Des sources ont indiqué que les deux géants coréens de la mémoire considèrent la mémoire mobile empilée comme une source importante de revenus futurs et prévoient d'étendre la « mémoire de type HBM » aux smartphones, tablettes et ordinateurs portables afin de fournir de la puissance à l'IA finale. Selon des rapports précédents sur ce site, le produit de Samsung Electronics s'appelle LPWide I/O memory, et SK Hynix appelle cette technologie VFO. Les deux sociétés ont utilisé à peu près la même voie technique, à savoir combiner emballage en sortance et canaux verticaux. La mémoire LPWide I/O de Samsung Electronics a une largeur de 512 bits.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

See all articles