La macchina Java è fondata sullo stack. Ciò significa che non esistono registri interni in cui i dati tratti dalla memoria esterna al microprocessore vengono immagazzinati, trattati e ripassati alla stessa memoria esterna. Questo compito viene assolto dallo stack. Ciò comporta una semplificazione della macchina Java, senza peraltro diminuirne la velocità. Infatti, essendo la macchina Java virtuale, eventuali registri interni virtuali non sarebbero comunque dei veri registri interni più veloci della memoria esterna al microprocessore.