当前位置:网站首页>Brève description de JVM (2) - interface de méthode locale et moteur d'exécution

Brève description de JVM (2) - interface de méthode locale et moteur d'exécution

2021-09-15 07:16:45 Kooknut39

Bonjour tout le monde,Je suisKookNut39C'est aussiTommy,InCSDNÉcrire,Écris.JavaQuand j'étaisTommy,Partagez ce que vous pensez être plus important dans le processus d'apprentissage,Dédié à aider les débutants à démarrer,L'espoir peut vous aider à progresser.Bienvenue aux blogueurs intéressés,Apprendre avec les blogueursJavaConnaissances.Vous pouvez également consulter les articles précédents dans la colonne,J'espère qu'à l'avenir, nous pourrons discuter de la technologie.

Cet article complète ce qui n'a pas été écrit dans l'article précédent,Si vous voulez voir la version complète,Tout le monde peut entrer dans la colonne,Voir l'article précédent

1.3 Interface de la méthode locale

L'approche locale est que la couche inférieure n'est pas Java Méthode de réalisation,Par exemple,C/C++

Une approche locale est uneJavaAppel nonJavaInterface du Code,Cette caractéristique n'est pas Java Unique toutes les langues ont cette caractéristique,Par exemple,C++La langue peut également être appelée parCFonctions sous - jacentes mises en œuvre.

Lors de la définition d'une méthode locale,Il n'est pas nécessaire de lui donner un implémentateur,Parce que son implémentation est du bien au malJavaLa langue est implémentée à l'extérieur

Mots clés native Peut être comparé à d'autresTous lesDe Java Utilisation conjointe des identificateurs,Mais abstract Exception,Parce que cette classe est une interface.

Utilisation des méthodes locales:

  1. Avec Java Relations diplomatiques en matière d'environnement:
    Parfois JavaBesoins d'application et JavaInteractions environnementales extérieures,C'est la méthode locale qui existePrincipalRaisons.Tu peux y réfléchir. Java Nécessite un certain nombre de systèmes sous - jacents, Comme dans le cas de certains matériels qui échangent des informations . Une approche locale formalise un tel mécanisme de communication :Il nous offre une interface très simple,Et nous n'avons pas besoin de comprendre Java Détails fastidieux en dehors de l'application .

  2. Interaction avec le système d'exploitation( Par exemple, les fils finissent par revenir aux fils du système d'exploitation ):

    JVM Soutien Java La langue elle - même et l'exécution ,C'est... Java Plate - forme sur laquelle le programme repose,Il est composé d'un interpréteur(Expliquer le code byte)Et quelques bibliothèques connectées au code local. Mais aussi puissant qu'il soit ,Après tout, ce n'est pas un système complet., Il dépend souvent du support de certains systèmes sous - jacents .Ces systèmes sous - jacents sont souvent des systèmes d'exploitation puissants.En utilisant des méthodes locales,Nous avons pu utiliser Java C'est fait. jre Interaction avec le système sous - jacent,Et même JVMCertaines Parties de C C'est écrit.Et,Si nous voulons utiliser Java Lorsque la langue elle - même ne fournit pas les caractéristiques encapsulées du système d'exploitation ,Nous devons également utiliser des méthodes locales.

1.4Moteur d'exécution

JVM La tâche principale est de charger le code byte à l'intérieur de , Mais le Bytecode ne fonctionne pas directement sur le système d'exploitation , .Parce que l'instruction Bytecode n'est pas équivalente à l'instruction machine locale , Il ne contient qu'une partie de ce qui peut être JVM Instruction Bytecode reconnue 、Tableau des symboles, Et d'autres informations complémentaires .Alors, Si vous voulez en avoir un Java Le programme fonctionne ,Moteur d'exécution(Execution Engine) La tâche est de commander Bytecode Explication/Compiler Sur la plate - forme correspondante (Système d'exploitation) Les commandes locales de la machine pour .En termes simples,JVM .Le moteur d'exécution dans traduit le langage de haut niveau en langage machine , Pour que la machine se reconnaisse. .

Compilation avant et compilation arrière

  1. Compilation frontale :DeJavaDocuments de procédure(.java) Au fichier Bytecode (.class)
  2. Compilation de fond : Au moment de l'exécution .class Le fichier est compilé en code machine local

Interpréteur et JIT Compilateur

  1. Interpréteur:Quand Java .Lorsque la machine virtuelle démarre, le code byte est appliqué selon des spécifications prédéfinies Ligne par ligne La façon dont l'interprétation est exécutée , Mettez le contenu de chaque fichier Bytecode “Traduction” Exécuter pour les commandes locales de la machine sur la plate - forme correspondante .
  2. JIT(Just In Time Compiler)Compilateur: C'est la machine virtuelle qui envoie le code source Tout à la fois Compilé directement dans le langage machine associé à la plate - forme Machine locale , Mais pas immédiatement .

Pour en parler, il faut mentionner un langage semi - compilé et semi - interprétatif :

C'est l'interprétation et la compilation , L'avantage est une réponse rapide ,Efficacité élevée.

PourquoiJava C'est un langage semi - compilé et semi - interprétatif

JVM Designer pour satisfaire Java Mise en oeuvre du programme Caractéristiques multiplateforme , Toutes les instructions de la machine locale qui ne sont pas générées directement par le langage avancé ( Les différentes commandes locales de la machine du système d'exploitation sont également différentes ), C'est ainsi qu'est née l'idée d'implémenter l'interpréteur au moment de l'exécution en utilisant l'interprétation ligne par ligne des programmes d'exécution Bytecode .

Le vrai rôle de l'interpréteur est un temps d'exécution “Traducteur”, Mettre le contenu du fichier Bytecode “Traduction” Exécuter pour les commandes locales de la machine sur la plate - forme correspondante , Parce qu'expliquer une phrase, exécuter une phrase , Donc l'exécution est moins efficace .

JIT Une fois que le compilateur a traduit le Bytecode en code local , Vous pouvez faire une opération de cache , L'exécution devient plus efficace . Besoin de démarrer JIT Le compilateur compile le Bytecode directement dans les instructions de la machine locale de la plate - forme correspondante , Doit être appelé selon le Code Fréquence d'exécution Ça dépend. .JIT Le compilateur fonctionne contre les “Code Hotspot” Faire une optimisation profonde , Compilez - le directement en tant qu'instruction machine locale pour la plate - forme correspondante , Pour élever Java Exécution du programme .( Une méthode appelée plusieurs fois , Ou un - Les méthodes peuvent être appelées “Code Hotspot”.)

Utilisation simultanéeJIT Raison du compilateur et de l'interpréteur ?

  1. Quand le programme démarre, L'interpréteur peut fonctionner immédiatement ,Réponse rapide, Économisez le temps de compilation ,Exécution immédiate.
  2. Pour que le compilateur fonctionne , Compiler le code dans le code local , Un certain temps d'exécution est nécessaire , Mais une fois compilé en code local ,Exécution efficace. Il faut une architecture où l'interpréteur et le compilateur instantané coexistent en échange d'un point d'équilibre .

C'est la fin de ce partage., S'il y a une erreur dans le texte , Les commentaires sont les bienvenus ,Les mots de code ne sont pas faciles,Si ça vous plaît,Un peu d'appréciation.+Commentaires+Collection,Merci pour votre soutien

版权声明
本文为[Kooknut39]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210915071353419Q.html

随机推荐