Bytecode Java

Le bytecode Java est un bytecode destiné à regrouper des instructions exécutables par une machine virtuelle Java. Par extension, il désigne un flux d'octet…

Bytecode Java

Le bytecode Java est un bytecode destiné à regrouper des instructions exécutables par une machine virtuelle Java. Par extension, il désigne un flux d'octets binaire au format d'une classe Java. Ce flux est habituellement le résultat de la compilation d'un code source, ce code source n'étant pas obligatoirement écrit en langage Java. Ce bytecode peut être exécuté sous de nombreux systèmes d'exploitation par une machine virtuelle Java.

Le bytecode est un code binaire, ce qui permet un traitement plus rapide que le code source Java, et qui rassemble (compile) tous les codes dispersés dans différents fichiers lors de l'écriture du programme.

Du bytecode sans Java

La machine virtuelle Java fonctionne à l'identique sur plusieurs architectures physiques d'ordinateur. Elle n'est pas spécifique au langage Java et de nombreux développeurs l'utilisent pour faire tourner des programmes écrits dans bien d'autres langages que Java (Scala, Groovy, Jython, JRuby, Kotlin, Clojure…). Dans ce cas, un compilateur spécifique traduit les fichiers sources rédigés dans un de ces langages et produit un fichier .class, lequel pourra être exécuté dans une machine virtuelle Java (JVM). Il est possible de créer une application dont des morceaux sont écrits dans plusieurs de ces langages. On peut ainsi créer une classe Python qui hérite d'une classe Java, et inversement.

Assembleurs de bytecode

Les fichiers binaires de classes Java (les .class) peuvent aussi être générés au moyen d'assembleurs de bytecode, qui permettent de contourner certains aspects du langage Java. Par exemple, alors que les appels de méthode sont résolus dynamiquement par le compilateur (à certaines exceptions près, comme les méthodes privées), il est possible, à l'aide d'un assembleur de bytecode, de lier statiquement les appels de fonctions, comme à l'aide des opérateurs de qualification de Simula (Qua) ou du C++ (::<nom de classe>).

Voir aussi

Articles connexes

  • Apache BCEL : manipulation du bytecode Java en Java
  • ASM, une alternative à BCEL

Liens externes

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.