Le bytecode est un logiciel de code de l'objet qui ne peut être interprété par un logiciel, généralement décrit comme machine virtuelle. Dans de nombreux modernes développement de logiciels plates-formes, bytecode est préférable de code machine de bas niveau car il met un interprète entre le logiciel et le matériel informatique. Code machine dépend de la plateforme qui nécessite la compilation sur chaque plate-forme matérielle d'exécuter correctement sur cette plate-forme spécifique.
Comme les modèles de développement de logiciels ont évolué au fil du temps, il en a été l'utilisation de couches externes d'interprétation entre le matériel d'un ordinateur et le logiciel qui s'exécute sur l'ordinateur. Au début de la création de logiciels au début, les développeurs étaient dépendants de matériel informatique, les pilotes et les systèmes d'exploitation sous-jacents. Cette dépendance a forcé les développeurs à comprendre intimement nombreux aspects des ordinateurs spécifiques, qui ont fait l'indépendance de plateforme très difficile et la croissance des logiciels étroitement couplés à des fournisseurs spécifiques de matériel et de logiciels.
La création de bytecode a créé un environnement de plate-forme d'indépendance dans la communauté de développement de logiciels. Avec l'utilisation de cette métaphore, les développeurs de logiciels peuvent écrire une fois et utiliser partout. Les développeurs sont pas obligés de comprendre les pilotes natifs d'un ordinateur spécifique, ils ne sont pas concernés par le système d'exploitation sous-jacent sur lequel le logiciel sera exécuté.
Une machine virtuelle est le terme utilisé dans le langage de programmation Java pour représenter le programme de logiciel qui va interpréter le bytecode. Cette machine virtuelle permet de convertir le pseudo-code binaire en tant que nécessaire pour interagir avec le matériel sous-jacent et le système d'exploitation à l'intérieur de l'ordinateur. Le code machine qui est généré par la machine virtuelle est masquée par le développeur du logiciel Java et peut fonctionner entièrement sur plusieurs plates-formes sans nécessiter une réécriture de l'application logicielle pour chaque plate-forme.
Les données internes de bytecode sont plus d'un sujet avance et généralement pas nécessaire dans la plupart des développeurs à comprendre. Bytecode n'est pas un langage lisible par l'homme et se compose de représentations codées numériques de classes, les méthodes et la portée des objets et de leurs classes de Withing nidification. Chaque opcode bytecode est un seul octet de longueur.
Le langage machine nécessaire pour les ordinateurs modernes pour fonctionner sur les commandes est de nature exclusive par le vendeur. Chaque système d'exploitation et le matériel a une façon unique de processus de traitement, allocation de la mémoire, et l'utilisation de la tâche. En utilisant une application de développement de logiciels de bytecode, l'interprète de la machine virtuelle est responsable de la création du code de la machine qui sera nécessaire pour fonctionner sur la plate-forme propriétaire.