Bytecode je programska računalniška objektna koda, ki jo lahko razlaga samo programski program, običajno opisan kot navidezni stroj. V mnogih sodobnih platformah za razvoj programske opreme je bajtna koda boljša od strojne kode nizke ravni, saj postavlja tolmača med programsko opremo in računalniško strojno opremo. Strojna koda je odvisna od platforme, kar zahteva kompilacijo na vsaki platformi strojne opreme, da se pravilno izvaja na tej posebni platformi.
Ker so paradigme razvoja programske opreme sčasoma dozorele, se je povečala tudi uporaba zunanjih slojev interpretacije med strojno opremo računalnika in programsko opremo, ki se izvaja na računalniku. Na začetku zgodnjega ustvarjanja programske opreme so bili razvijalci odvisni od računalniške strojne opreme, gonilnikov in osnovnih operacijskih sistemov. Ta odvisnost je prisilila razvijalce, da so tesno razumeli številne vidike določenih računalnikov, zaradi česar je bila neodvisnost od platforme zelo težka, rast programske opreme pa je bila tesno povezana s posebnimi ponudniki strojne in programske opreme.
Ustvarjanje bajtne kode je ustvarilo okolje neodvisnosti od platforme v skupnosti za razvoj programske opreme. Z uporabo te metafore lahko razvijalci programske opreme napišejo enkrat in uporabljajo povsod. Razvijalci niso prisiljeni razumeti domačih gonilnikov določenega računalnika, niti se ne ukvarjajo z osnovnim operacijskim sistemom, na katerem bo programska oprema delovala.
Navidezni stroj je izraz, ki se v programskem jeziku Java™ uporablja za predstavljanje programske opreme, ki bo interpretirala bajtno kodo. Ta navidezni stroj bo po potrebi pretvoril bajtno kodo za interakcijo z osnovno strojno opremo in operacijskim sistemom v računalniku. Strojna koda, ki jo ustvari navidezni stroj, je skrita pred razvijalcem programske opreme Java™ in lahko v celoti deluje na več platformah, ne da bi bilo treba prepisati programsko aplikacijo za vsako platformo.
Notranje komponente bajtne kode so bolj napredna tema in jih večina razvijalcev običajno ne potrebuje za razumevanje. Bytecode ni človeku berljiv jezik in je sestavljen iz številčno kodiranih predstavitev razredov, metod in obsega objektov ter njihovega gnezdenja znotraj razredov. Vsaka operacijska koda bajtne kode je dolga en sam bajt.
Strojni jezik, ki je potreben za delovanje sodobnih računalnikov na ukazih, je lastniške narave s strani prodajalca. Vsaka strojna oprema in operacijski sistem imata edinstven način ravnanja s procesi, dodeljevanjem pomnilnika in izrabo nalog. Z uporabo aplikacije za razvoj programske opreme bytecode je tolmač navideznega stroja odgovoren za ustvarjanje strojne kode, ki bo potrebna za delovanje na lastniški platformi.