Avantages et inconvénients des machines virtuelles Java (JVM)
La Machine Virtuelle Java (JVM) est un environnement qui exécute les programmes Java. Les programmes Java sont compilés en un langage intermédiaire appelé bytecode, exécuté par la JVM. Tout programme compilé en bytecode s'exécute sur toute plateforme ayant une JVM. Cela rend les logiciels Java compatibles avec de nombreuses plateformes. La JVM a avantages et inconvénients notables que tout développeur doit peser avant d'investir dans le développement Java.
Indépendance de plateforme
Le bytecode Java s'écrit une fois et s'exécute sur plusieurs plateformes. Pas besoin de porter vers un matériel spécifique car il tourne dans la JVM. Toute application compilée en bytecode Java tourne sur toute plateforme avec une JVM.
Sécurité
Java a été conçu avec la sécurité à l'esprit. La JVM a des fonctions de sécurité intégrées permettant d'écrire des programmes Java hautement sécurisés. Elle empêche aussi les logiciels malveillants de compromettre le système d'exploitation (OS) en empêchant les applications Java d'interagir avec les ressources de l'OS.
Performance
Les programmes Java sur JVM sont généralement plus lents que leurs équivalents en C++. La neutralité système du bytecode est un inconvénient pour la performance. L'optimisation du code repose lourdement sur des fonctionnalités système-spécifiques. Comme le bytecode Java est neutre, il ne peut être optimisé pour un matériel spécifique.
Correction
Un programme qui fonctionne comme prévu est « correct ». Comme un programme Java dépend de la JVM pour s'exécuter, la JVM doit être exempte d'erreurs pour que le programme opère correctement. Cette dépendance introduit un point de défaillance possible. Heureusement, la JVM est produite avec des standards très élevés, peu probable qu'elle soit livrée avec erreurs. Néanmoins, une défaillance de la JVM reste une possibilité à considérer.
