Model obliczeń Dla przykładu, kod asemblera dla procesora x86 mógłby wyglądać tak: add eax, edx mov ecx, eax Ten kod dodaje dwie liczby do siebie, a następnie przenosi je w inne miejsce. Robiący to samo kod bajtowy Javy wyglądałby następująco: 0 iload_1 1 iload_2 2 iadd 3 istore_3
W tym kodzie, dwie wartości które zostaną do siebie dodane umieszczane są na stosie, gdzie są pobierane przez instrukcję która je dodaje i wynik umieszcza na stosie. Instrukcja przechowywania następnie przenosi je do najwyższej wartości na obszarze stosu w lokacji zmiennej. Liczby przed instrukcjami to po prostu przesunięcie każdej instrukcji od początku metody. Metoda nazwana np. „pobierzNazwe()” mogłaby wyglądać tak: Method java.lang.String pobierzNazwe() 0 aload_0 // Obiekt „this” jest zapisywany w lokacji 0 tabeli zmiennych 1 getfield #5 <Field java.lang.String nazwa> // Instrukcja ta pobiera obiekt z wierzchu stosu, zwraca wybrane // pole z niego i umieszcza je na stosie. // W tym przykładzie, pole o nazwie „nazwa” jest piątym polem klasy 4 areturn // Zwraca obiekt na szczycie stosu z metody.
Przykład Przykład kodu w Javie, źródło: outer: for (int i = 2; i < 1000; i++) { for (int j = 2; j < i;