Maison Java javaDidacticiel Quels sont les avantages de compiler et d'exécuter Java ?

Quels sont les avantages de compiler et d'exécuter Java ?

May 27, 2019 am 10:20 AM
java

Le code Java est compilé et exécuté dans la JVM, alors quels sont les avantages de cette façon de fonctionner ?

Quels sont les avantages de compiler et d'exécuter Java ?

Contrairement au langage C/C++, qui peut être compilé directement pour générer un format de code que le CPU peut comprendre, communément appelé code machine, Java compile le code en mots exécutable par le code de la section de la machine virtuelle. La machine virtuelle Java peut être implémentée par matériel ou par logiciel selon différentes plateformes (Windows, Linux, Mac, etc.). L'avantage est qu'une fois le code Java compilé en bytecode, il peut s'exécuter sur différentes plates-formes de machines virtuelles. C'est ce que l'on dit souvent « compiler une fois, exécuter n'importe où ». De plus, la machine virtuelle fournit également une détection dynamique telle que l'environnement d'hébergement, les limites du tableau, le type dynamique, les autorisations de sécurité, etc., nous permettant d'accorder plus d'attention au développement de la logique métier.

Machine virtuelle Java

Du point de vue de la machine virtuelle, l'exécution du code Java nécessite d'abord de charger le fichier de classe compilé dans la machine virtuelle Java. La classe Java chargée sera stockée dans la zone méthode. La machine virtuelle Java divise la zone de mémoire d'exécution en cinq parties, à savoir la zone de méthodes, le tas, le registre PC, la pile de méthodes Java et la pile de méthodes locale.

Processus Java en cours d'exécution

Pendant le processus en cours d'exécution, chaque fois qu'une méthode Java est appelée, la machine virtuelle Java génère un cadre de pile dans la pile de méthodes Java du thread actuel . Swimsuit contient des variables locales et des opérandes de bytecode. La taille de cette trame est calculée à l'avance et la machine virtuelle Java ne nécessite pas que la pile mémoire soit contiguë. Lors de la sortie d'une méthode, qu'elle revienne normalement ou anormalement, la machine virtuelle Java affichera la trame actuelle et la supprimera. D'un point de vue matériel, le bytecode Java ne peut pas être exécuté directement, la machine virtuelle Java doit donc traduire le bytecode en code machine que le processeur peut reconnaître.
Il existe deux situations dans le processus de traduction ci-dessus : la première est l'interprétation et l'exécution, c'est-à-dire la traduction du bytecode en code machine un par un et son exécution ; la seconde est la compilation juste à temps (JIT) ; en convertit un. Tous les bytecodes de la méthode sont traduits en code machine avant exécution.

L'avantage du premier est qu'il n'est pas nécessaire d'attendre la compilation, et l'avantage du second est qu'il s'exécute en fait plus rapidement. Afin d'obtenir une vitesse d'exécution plus rapide, les machines virtuelles Java adoptent généralement deux méthodes, à savoir le mode mixte, qui combine les avantages des deux. La technologie de compilation juste à temps est basée sur la théorie de la règle 80-20, c'est-à-dire que 20 % du code occupe 80 % des ressources informatiques. L'interprétation est utilisée pour la plupart des codes peu courants, et la compilation juste à temps est utilisée pour un petit nombre de codes couramment utilisés, qui ont atteint une vitesse d'exécution raisonnable.

Lorsque les ressources informatiques sont suffisantes, interprétation du bytecode, exécution, compilation à la volée et exécution simultanée. Une fois la compilation terminée, l'exécution de l'interprétation peut être remplacée la prochaine fois et le code machine peut être exécuté directement. En général, l'efficacité d'exécution du code Java a beaucoup à voir avec la configuration et le mode de fonctionnement de la machine virtuelle. L'optimisation de la machine virtuelle Java peut améliorer efficacement l'efficacité d'exécution du code.

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

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.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

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.

See all articles