


Fonctionnalités avancées JVM--Introduction à la zone de structure de la mémoire 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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds





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.

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.

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.

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.

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.

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

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.

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
