Java bytekode

FONT SIZE:
fontsize_dec
fontsize_inc
11-02-2018 Georg Falch J

Java bytekode er den type af instruktioner, at Java virtuel maskine kører, dens bytecode. Regel resultat af anvendelse af en compiler Java programmeringssprog, men kan genereres fra andre sprog.

Struktur

Den opcode af hver instruktion er én byte lang, selv om nogle kræver parametre resulterer i multibyte instruktioner. Ikke anvendes alle 256 mulige opcodes. Faktisk Sun Microsystems, den oprindelige skaberen af ​​Java-platformen, adskilt tre værdier til at være permanent ikke gennemførte.

Instruktionerne falder i følgende kategorier:

  • Flyt hukommelse til optegnelser og omvendt
  • Aritmetik og logik
  • Omregningskurser
  • Oprettelse og manipulere objekter
  • Håndtering af operand stack
  • Flow Control
  • Metode påkaldelse og returnere dem

Der er også et par instruktionerne for mere specialiserede operationer, såsom undtagelse håndtering, synkronisering osv

Stilen i Java bytekode er analog med en stak-orienteret programmeringssprog. For eksempel, mens forsamlingen kode for at tilføje to poster og flytte resultatet til en tredjepart for en x86 CPU familie er så ...

... Den sammenlignelige assembler kode i Java ville se ud ...

De to værdier vil blive tilføjet placeres i en stak, som vil blive truffet af add instruktion. Resultatet af summen sættes tilbage i stakken og udvindes ved den sidste sætning, det går over til registreringsdatabasen.

Håndtering dynamiske sprog

Java VM giver en vis evne til at håndtere dynamisk indtastes sprog. De fleste eksisterende instruktionssæt er statisk skrevet, hvilket betyder, at metode invokationer har kontrolleret "signatur" af disse compile-tid, uden en mekanisme til at forsinke denne afgørelse til runtime, eller vælg metode "forsendelse" som en alternativ metode.

Den JSR 292 tilføjet en ny instruktion for at aktivere invoación metoder baseret på dynamisk skrive. "Da Vinci-maskine" er en prototype implementering af virtuelle maskine vært JVM udvidelser, der peger på at håndtere disse sprog. Også den officielle Java virtuel maskine, siden version 7 omfatter også opcode.

Forrige artikel Jaguar XKSS
Næste artikel Juan Ignacio Mercier