Pengertian Java Virtual mechine
Sebelum masuk ke materi Java virtual mechine, kita harus memahami terlebih dahulu apa itu virtual mechine. Virtual mechine adalah sebuah rekayasa perangkat lunak yang mempunyai fungsi yang mirip dengan komputer fisik dengan komponen-komponen pembangunnya yang lengkap. sederhananya virtual mechine membuat ruang ke dua pada sebuah komputer, dimana segala aktivitas didalamnya namun tidak mempengaruhi keadaan komputer utama.
Java virtual mechine (JVM) merupakan aplikasi khusus bahasa pemrograman java yang digunakan untuk menjalankan program yang ditulis dalam bahasa pemrograman java. Java virtual mechine akan mengkompilasi atau mengartikan kode yang ditulis dengan bahasa pemrograman java kedalam bytecode (kode biner). Java virtual mechine dirancang untuk memungkinkan program aplikasi yang dibangun dapat dijalankan diberbagai platforms tanpa harus ditulis ulang oleh programer untuk setiap platforms berbeda.
pada dasarnya compiler pada java virtual mechine akan membaca sumber dari bahasa pemrograman java yang telah ditulis dan merubahnya menjadi bytecode yang dapat diterjemahkan menjadi bahasa yang bisa dikenali oleh komputer.
didalam bahasa pemrograman lainnya, compiler biasanya akan menghasilkan kode-kode untuk mesin tertentu. sedangkan pada java compiler akan menghasilkan kode yang ditujukan untuk virtual mechine.
Arsitektur Java Virtual mechine
- class loader
- runtime data area (JVM memory)
- execution engine
1. Class Loader
a. Loading
- nama class utama
- keterkaitan antara class dan interface
- modifier, informasi methode, variabel dan sebagainya
b. Linking
- fungsi verifikasi digunakan untuk memastikan kebenaran dari file.class. apakah formatnya sudah benar serta dihasilkan oleh kompiler yang valid atau tidak.
- persiapan digunakan untuk mengalokasikan memori dan menginisialisasi memori ke nilai default.
- resolusi digunakan untuk mengganti referensi simbolik dari tipe dengan referensi langsung.
c.Initialization
pada fase initialization java virtual mechine (JVM) semua variabel statis akan ditetapkan dengan nilainya yang ditentukan didalam blok statis dan kode (jika ada).
2. Java Virtual Mechine (JVM) Memory data area
a. Methode Area
Pada method area semua informasi pada tingkat kelas seperti halnya nama kelas induk, nama kelas, metode dan variabel disimpan termasuk juga variabel statis. hanya akan ada 1 area methode didalam Java virtual mechine Memory.
b. Heap Area
pada heap area semua informasi dari objek akan akan disimpan. dan heap area juga hanya akan ada satu per java virtual mechine.
c. Stack Area
pada tiap thread , Java virtual mechine akan membuat satu tumpukan yang disimpan didalam stack area.
d. Pc Register
pc register berfungsi untuk menyimpan alamat intruksi yang akan dieksekusi saat ini dari sebuah thread yang ada di java virtual mechine.
e. Native Methode
Native stack dibuat untuk setiap thread yang ada pada java virtual mechine. stack ini nantinya akan menyimpan setiap informasi dari native method.
3. Execution engine
Execution engine pada java virtual mechine berfungsi untuk menjalankan .class (bytecode). Execution engine akan membaca bytecode baris demi baris, menggunakan setiap data dan informasi yang ada diberbagai memori dan menjalankan instruksi.execution engine pada java virtual mechine merupakan komponen yang sangat penting dan sangat krusial karena berperan dalam melakukan proses eksekusi terhadap bytecode. execution engine dibagi menjadi tiga bagian yaitu :
- interpreter
- just -in -time compiler
- garbage Collector
Cara kerja Java virtual mechine
pada pemrograman java, file java dituliskan dalam bentuk teks dan akan disimpan dengan nama file yang sama persis dengan nama classnya dengan ekstensinya yaitu .java. file java tersebut kemudian akan dicompile dengan compiler javac sehingga akan menghasilkan ekstensi .class.
file ekstensi hasil compiler yang berupa .class akan dijalankan diatas java virtual mechine (JVM) dengan menggunakan java launcher (java). dengan adanya java virtual mechine, program java yang telah dibuat nantinya bisa digunakan diberbagai platform komputer dengan system operasi yang berbeda misalnya windows, linuk dan mac.
0 Komentar