Yang Harus Anda Ketahui Tentang Mesin Virtual Java?



Blog ini akan membahas konsep mesin virtual java secara rinci dengan komponen arsitekturnya dan perbedaan utama antara JVM, JRE dan JDK

Bahasa telah menjadi raksasa di industri IT sejak lama. Ini memiliki beberapa konsep terbaik yang membuatnya lebih baik daripada bahasa pemrograman lainnya. Salah satu konsep tersebut adalah mesin virtual Java, di artikel ini kita akan belajar tentang berbagai aspek mesin virtual secara detail. Berikut adalah topik yang dibahas di blog ini:

pl tutorial sql dengan contoh

Apa itu Mesin Virtual Java?

Mesin virtual Java adalah mesin abstrak platform-independen yang menyediakan lingkungan runtime tempat kode byte Java dijalankan.





Ini adalah bagian dari lingkungan runtime Java yang mengubah bytecode Java menjadi bahasa yang dapat dibaca mesin. Utama yang kita miliki dalam program Java sebenarnya dipanggil oleh mesin virtual Java.

jvm - mesin virtual java - edureka

Mengapa Kita Membutuhkan Mesin Virtual Java?

Kami membutuhkan mesin virtual Java untuk tugas-tugas yang dijalankannya yang sangat diperlukan untuk setiap pengembangan yang melibatkan Java. Berikut adalah beberapa tugas yang dilakukan mesin virtual Java.



  • Memuat kode
  • Verifikasi kode
  • Eksekusi kode
  • Ini menyediakan lingkungan run-time untuk aplikasi
  • Area memori
  • Daftar set
  • Menyediakan heap pengumpulan sampah
  • Pelaporan kesalahan fatal
  • Menyediakan sebuah kelas format file

Dengan semua operasi ini, mesin virtual Java merupakan bagian integral dari pengembangan Java. Mari kita coba memahami cara kerjanya dengan bantuan arsitektur mesin virtual Java.

Arsitektur Mesin Virtual Java

Arsitektur mesin virtual Java cukup sederhana, ia memiliki area memori, pemuat kelas, dan mesin eksekusi di antara komponen lainnya. mari kita bahas masing-masing secara rinci.

ClassLoader

Ini adalah subsistem yang digunakan untuk memuat file kelas. Setiap kali kita menjalankan program di java, itu pertama kali dimuat oleh ClassLoader. fungsi utamanya meliputi inisialisasi, penautan, dan pemuatan. Berikut ini adalah classloader bawaan di Java.



    • Bootstrap ClassLoader - Ini adalah kelas super Extension ClassLoader yang memuat file rt.jar.

    • Perpanjangan ClassLoader - Memuat file jar yang terletak di direktori.

    • Sistem / Aplikasi ClassLoader - Memuat file kelas dari classpath.

    • Memuat Operasi - Pertama classLoader memuat file .class dan menghasilkan data yang sesuai dalam format biner yang disimpan di area metode.

    • Menghubungkan Operasi - Setelah memuat itu mempersiapkan, memverifikasi dan membuat resolusi. JVM mengalokasikan memori untuk variabel kelas dan menginisialisasi memori ke nilai default. Ini memastikan kebenaran file .class dan ketika verifikasi gagal, kami mendapatkan kesalahan pengecualian waktu proses.

    • Inisialisasi - Semua variabel statis ditugaskan dengan nilai-nilainya yang ditentukan dalam blok kode pada fase ini.

Memori JVM

  • Metode Area - Ini menyimpan struktur untuk setiap kelas seperti kode, data lapangan, kumpulan konstan runtime, data metode, dll.

  • Tumpukan - Objek dialokasikan pada waktu proses di heap.

  • Tumpukan Bahasa JVM - Ini menyimpan variabel dan hasil lokal. Ini memainkan peran penting dalam meminta dan mengembalikan hasil. Setiap kali metode dipanggil, bingkai dibuat dan dihancurkan segera setelah pemanggilan berakhir atau selesai.

  • Register PC - Ini memiliki alamat atau lokasi JVMinstruction yang sedang dijalankan.

  • Tumpukan Metode Asli - Semua metode asli yang digunakan dalam aplikasi ada di tumpukan metode asli.

  • Mesin Eksekusi - Mesin eksekusi berisi prosesor virtual, juru bahasa dan a JIT penyusun.

  • Metode Asli Antarmuka - Ini adalah sebuah yang menyediakan.

Sekarang setelah kita memahami arsitektur JVM, mari kita lihat proses eksekusi dan kompilasi kode.

Proses Eksekusi

Langkah-langkah berikut berlangsung saat eksekusi dan kompilasi kode Java.

  • Metode utama disimpan dalam satu file dan metode lain disimpan dalam file yang berbeda.
  • Setelah kompilasi, itu akan menyediakan file .class yang sesuai yang akan memiliki kode byte tanpa tautan apa pun, tidak seperti C.
  • Selama eksekusi, file kelas diverifikasi untuk setiap pelanggaran menggunakan Classloader.
  • Setelah ini, bytecode diubah menjadi kode mesin asli yang sesuai. Ini juga alasan mengapa Java relatif lebih lambat.

Sekarang setelah kita tahu, cara kerja eksekusi, mari kita lihat perbedaan antara JDK, JRE, dan JVM.

substring dalam contoh server sql

Perbedaan Antara JDK, JRE, Dan JVM

Berikut adalah beberapa perbedaan penting antara JDK , JVM, dan JRE.

  1. JDK adalah singkatan dari Java development kit, dan JRE adalah singkatan dari Java runtime environment.
  2. JDK untuk pengembangan sedangkan JRE untuk lingkungan run time.
  3. JVM adalah bagian penting dari JDK dan JRE untuk menjalankan program Java apa pun.
  4. JVM merupakan bagian integral dari pemrograman Java dan menyediakan kemandirian platform.

Ini membawa kita ke akhir artikel ini di mana kita telah belajar tentang mesin virtual Java secara mendetail. Saya harap Anda jelas dengan semua yang telah dibagikan dengan Anda dalam tutorial ini.

Jika Anda menemukan artikel tentang 'Java Virtual Machine' ini relevan, lihat Edureka , perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar puas yang tersebar di seluruh dunia.

Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda dan menghasilkan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Jika Anda menemukan pertanyaan, silakan ajukan semua pertanyaan Anda di bagian komentar 'Java Virtual Machine' dan tim kami akan dengan senang hati menjawabnya.