Bagaimana JVM bekerja?

1. pemuat kelas()

2. Kawasan Memori

3. Mesin eksekusi

1. pemuat kelas()

Proses memuat, menghubungkan, dan inisialisasi digunakan oleh JVM untuk membuat tipe tersedia untuk program yang menjalankan.

Memuat

Tugas utamanya adalah memuat kelas ke dalam memori. (Misalnya. Pemuat kelas Boostrap, pemuat kelas yang ditentukan khusus)

Hello.java › Hello.class › Pemuatan JVM (Dibutuhkan nama kelas yang sepenuhnya memenuhi syarat (com.company.sample…), info variabel, info induk langsung, kelas atau antarmuka atau enum)

Ketika sebuah kelas dimuat, JVM membuat objek dalam tipe data java dari file kelas.

Menautkan

Tiga langkah dalam proses penautan adalah sebagai berikut:

Verifikasi — Saat mencoba memuat kelas java ada sub-program yang disebut bytecode verifier. Ini akan memverifikasi apakah ini berasal dari kompiler yang valid, apakah ini memiliki struktur yang diperbaiki dan apakah file kelas ini memiliki format yang diperbaiki. JVM memunculkan pengecualian run-time yang disebut verifierException jika salah satu kondisi ini tidak terpenuhi.

Persiapan — Jika menggunakan variabel level instance atau variabel level statis di bagian persiapan kelas akan menetapkan nilai default untuk itu.

Resolusi — Kita harus melakukan semuanya dalam beberapa bahasa assembly. Di Java kita dapat membuat kelas khusus untuk scinareo yang berbeda. Java memungkinkan kita menggunakan istilah khusus domain seperti Karyawan/Siswa. JVM menggantikan tautan simbolik dengan tautan langsung sebelum mencapai tingkat mesin.

Inisialisasi

Ini adalah langkah terakhir dalam prosedur pemuatan kelas. Di sini nilai asli ditetapkan ke variabel statis, dan blok statis dieksekusi.

2. Kawasan Memori

✓ Kelas akan memuat semua informasi kelas ke dalamarea metode di memori saat kelas tersebut dimuat. Setiap JVM hanya memiliki satu area metode.

✓Area heap di memori adalah tempat semua informasi objek disimpan. Untuk setiap JVM hanya memiliki satu area heap.

Stack menyimpan informasi metode. Per utas.

Register PC menyimpan informasi tentang eksekusi berikutnya. Per utas.

Area metode asli, ketika mengakses metode asli apa pun dalam program, menyediakan fasilitas untuk menyimpan informasi metode dan metode asli. Per utas.

3. Mesin eksekusi

Mesin eksekusi adalah komponen utama JVM. Ini berinteraksi dengan lokasi memori JVM yang berbeda. Setiap thread dari program yang sedang berjalan adalah mesin eksekusinya sendiri. Mesin eksekusi menjalankan kode byte yang dimuat ke dalam area data run-time JVM melalui class loader. Mesin eksekusi mengeksekusi file Kelas Java.

Terima kasih telah membaca! Jika Anda menikmatinya, silakan tinggalkan tepuk tangan dan ikuti halaman saya.

Kishara Buddika