Maison  >  Article  >  Java  >  Pourquoi la plateforme de langage Java est-elle indépendante ?

Pourquoi la plateforme de langage Java est-elle indépendante ?

藏色散人
藏色散人original
2020-04-23 11:09:124092parcourir

Pourquoi la plateforme de langage Java est-elle indépendante ?

Pourquoi le langage Java est-il dit indépendant de la plateforme ?

1. Instructions pour la plate-forme et la machine

Quel que soit le langage de programmation dans lequel une application est écrite, elle doit passer par le système d'exploitation et le processeur pour être terminée. le fonctionnement du programme. Par conséquent, la plate-forme ici est composée du système d'exploitation et du processeur. La soi-disant indépendance de la plate-forme signifie que le logiciel ne manquera pas de s'exécuter ou d'exécuter des erreurs en raison de changements dans le système d'exploitation et le processeur.

Chaque plateforme possède ses propres instructions machine uniques. Les instructions machine d'une plateforme sont un code séquence composé de 0 et de 1 qui peuvent être directement reconnus et exécutés par la plateforme. Les instructions machine des plateformes formées par le même CPU et des OS différents peuvent être différentes

Tutoriel recommandé : "Java learning"

2. Qu'est-ce qui est lié à la plateforme ?

Les programmes C/C++ dépendent de la plate-forme : la plate-forme spécifique sur laquelle se trouve le programme source C/C++ compile et lie ses fichiers sources et génère des instructions machine, c'est-à-dire qu'elle génère des exécutables basés sur la machine. instructions du fichier de plateforme actuel, afin qu'il puisse exécuter cet exécutable sur n'importe quelle plateforme identique à la plateforme actuelle. Cependant, il n'y a aucune garantie que les fichiers exécutables générés par le programme source C/C++ puissent s'exécuter correctement sur toutes les plates-formes, car différentes plates-formes peuvent avoir des instructions machine différentes. Par conséquent, une fois la plate-forme modifiée, le programme source devra peut-être être modifié et recompilé pour la nouvelle plate-forme, qui dépend de la plate-forme.

La raison fondamentale pour laquelle les programmes C/C++ ne peuvent pas être multiplateformes est que le compilateur du programme source C/C++ compile pour la plate-forme et que différentes plates-formes ont des instructions machine différentes, il ne peut donc pas être multiplateforme. .

3. Pourquoi Java peut être multiplateforme

La raison pour laquelle C/C++ ne peut pas être multiplateforme est que le programme source C/C++ est compilé pour le plate-forme, elle n'est donc pas liée à la plate-forme étroitement liée. S'il existe un tel environnement : il est à la fois rétrocompatible (compatible avec la plateforme) et compatible ascendant (le programme peut s'exécuter), alors ne serait-il pas multiplateforme ? Sur la base de ce principe, Java fournit un environnement d'exécution Java - JRE (installation du JDK) sur le système d'exploitation de l'ordinateur.

JRE se compose d'une machine virtuelle Java, de bibliothèques de classes et de quelques fichiers de base, c'est-à-dire que tant que la plate-forme fournit un environnement d'exécution Java, les logiciels écrits en Java peuvent s'exécuter dessus.

Différent du C/C++, le compilateur fourni par le langage Java ne programme pas pour un système d'exploitation et une puce CPU spécifiques, mais compile le programme source Java dans ce qu'on appelle le bytecode pour la machine virtuelle Java "Intermédiaire". code", la machine virtuelle Java se charge alors de traduire le bytecode en code machine de la plateforme où se trouve la machine virtuelle, et de laisser la plateforme actuelle exécuter le code machine.

Le principe de fonctionnement du langage Java :

Le fichier de bytecode (c'est-à-dire le fichier .class) compilé sur un ordinateur peut être copié directement sur n'importe quel ordinateur sur lequel un environnement d'exécution Java est installé. courir. Le fichier de bytecode est ensuite interprété et exécuté par la machine virtuelle. Autrement dit, la machine virtuelle Java traduit le bytecode en code machine de l'ordinateur local, puis transmet le code machine au système d'exploitation local pour exécution.

Étant donné que le fichier de bytecode compilé sur un ordinateur peut être copié sur n'importe quel ordinateur sur lequel l'environnement d'exécution Java est installé et utilisé directement, le bytecode est en fait une sorte de "code intermédiaire", c'est pourquoi "le langage Java peut être compilé une fois et exécuté partout, c'est pourquoi Java est multiplateforme. Interpréteur de bytecode——>Langage machine correspondant à la plateforme. »

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:
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