Proses Komunitas Java (Java Community Process JCP)
Arsitektur Java Virtual Machine
Java Virtual Machine (JVM) adalah
sebuah spesifikasi untuk sebuah komputer abstrak. JVM terdiri dari sebuah kelas
pemanggil dan sebuah interpreter Java yang mengeksekusi kode arsitektur netral.
Kelas pemanggil memanggil file.class dari kedua program Java dan Java API untuk
dieksekusi oleh interpreter Java. Interpreter Java mungkin sebuah perangkat
lunak interpreter yang menterjemahkan satu kode byte pada satu waktu, atau mungkin
sebuah just-intime (JIT) kompiler yang menurunkan bytecode arsitektur netral
kedalam bahasa mesin untuk host computer.
Dalam spesifikasi mesin virtual
Java, behaviour mesin virtual digambarkan dari sisi subsistem, area memori,
tipe data, dan instruksi. Arsitektur Java Virtual Machine menunjukkan diagram
blok mesin virtual Java yang mencakup subsistem utama dan daerah memori yang
diuraikan dalam spesifikasi, masing-masing mesin virtual Java memiliki
subsistem class loader yaitu mekanisme untuk memuat tipe (kelas dan interface)
diberikan nama-nama yang memenuhi syarat. Setiap mesin virtual Java juga
memiliki mesin eksekusi yaitu mekanisme yang bertanggung jawab untuk
melaksanakan instruksi yang terdapat dalam methods of loaded classes.
Ketika Java
Virtual Machine menjalankan
sebuah program, butuh
memori untuk menyimpan banyak hal, termasuk bytecode
dan banyak informasi
lain ekstrak dari
loaded class files,
objek program instantiate, parameter methods, nilai return,
variabel lokal, dan antara hasil perhitungan.
Java virtual machine mengatur
memori yang dibutuhkan untuk mengeksekusi program ke beberapa runtime area
data.
Meskipun terdapat
runtime area data
yang sama dalam
beberapa bentuk di
setiap implementasi JVM, spesifikasi cukup
abstrak. Beberapa runtime
area data membagi
antara application's threads
dan lainnya yang unik ke individual threads. Setiap contoh dari JVM
memiliki satu area method dan satu
heap. Daerah ini dibagi
oleh semua thread
yang sedang berjalan
dalam JVM. Ketika
mesin virtual memuat
file class, kemudian menguraikan
informasi tentang tipe dari data biner yang terdapat dalam file class. Ketika
program berjalan, mesin virtual tempat semua obkjekprogram instantiate ke heap.
Java stack terdiri dari stack frames (frame). Sebuah
frame berisi tumpukan
dari satu pemanggilan
metode Java. Ketika thread
memanggil sebuah method, mesin virtual
Java mendorong frmae baru ke thread Java stack. Ketika method
sudah lengkap mesin virtual muncul dan membuang frame untuk method tersebut.