Bytecode on ohjelmistotietokoneobjektikoodi, jonka voi tulkita vain ohjelmisto, jota yleensä kutsutaan virtuaalikoneeksi. Monilla nykyaikaisilla ohjelmistokehitysalustoilla tavukoodi on edullinen matalan tason konekoodille, koska se asettaa tulkin ohjelmiston ja tietokoneen laitteiston väliin. Konekoodi on alustasta riippuvainen, mikä edellyttää kääntämistä jokaiselta laitteistoalustalta, jotta se toimisi oikein kyseisellä alustalla.
Ohjelmistokehityksen paradigmat ovat kypsyneet ajan myötä, samoin kuin ulkoisten tulkintakerrosten käyttö tietokoneen laitteiston ja tietokoneessa toimivan ohjelmiston välillä. Varhaisen ohjelmiston luomisen alussa kehittäjät olivat riippuvaisia tietokonelaitteistosta, ohjaimista ja taustalla olevista käyttöjärjestelmistä. Tämä riippuvuus pakotti kehittäjät ymmärtämään tarkasti tiettyjen tietokoneiden monia näkökohtia, mikä teki alustan riippumattomuudesta erittäin vaikean ja ohjelmistojen kasvun tiiviisti yhdistettynä tiettyihin laitteisto- ja ohjelmistotoimittajiin.
Tavu -koodin luominen on luonut alustan riippumattoman ympäristön ohjelmistokehitysyhteisöön. Tämän vertauskuvan avulla ohjelmistokehittäjät voivat kirjoittaa kerran ja käyttää kaikkialla. Kehittäjiä ei pakoteta ymmärtämään tietyn tietokoneen alkuperäisiä ohjaimia, eivätkä he ole huolissaan taustalla olevasta käyttöjärjestelmästä, jolla ohjelmisto toimii.
Virtuaalikone on termi, jota käytetään Java ™ -ohjelmointikielellä edustamaan ohjelmaa, joka tulkitsee tavukoodin. Tämä virtuaalikone muuntaa tavukoodin tarvittaessa vuorovaikutuksessa tietokoneen alla olevan laitteiston ja käyttöjärjestelmän kanssa. Virtuaalikoneen luoma konekoodi on piilotettu Java ™ -ohjelmiston kehittäjältä ja voi toimia täysin useilla alustoilla ilman, että ohjelmistosovellusta tarvitsee kirjoittaa uudelleen jokaiselle alustalle.
Tavukoodin sisäosat ovat enemmän ennakkoaiheita, eivätkä useimmat kehittäjät yleensä tarvitse niitä ymmärtää. Bytecode ei ole ihmisen luettavissa oleva kieli, ja se koostuu numeerisesti koodatuista esityksistä luokista, menetelmistä ja objektien laajuudesta sekä niiden sisäkkäisistä luokkien sisältämistä esityksistä. Jokainen tavukoodin opcode on yhden tavun pituinen.
Koneen kieli, jota nykyaikaiset tietokoneet tarvitsevat toimiakseen komennoilla, on myyjän oma luonne. Jokaisella laitteistolla ja käyttöjärjestelmällä on ainutlaatuinen tapa käsitellä prosesseja, muistin varaamista ja tehtävien käyttöä. Käyttämällä tavukoodiohjelmistokehityssovellusta virtuaalikoneen tulkki on vastuussa konekoodin luomisesta, joka vaaditaan toimimaan omalla alustalla.