Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

JVM | Apa itu Mesin Virtual Java &Arsitekturnya

Apa itu JVM?

Mesin Virtual Java (JVM) adalah mesin yang menyediakan lingkungan runtime untuk menggerakkan Kode Java atau aplikasi. Ini mengubah bytecode Java menjadi bahasa mesin. JVM adalah bagian dari Java Runtime Environment (JRE). Dalam bahasa pemrograman lain, kompiler menghasilkan kode mesin untuk sistem tertentu. Namun, kompiler Java menghasilkan kode untuk Mesin Virtual yang dikenal sebagai Mesin Virtual Java.

Inilah cara kerja JVM

Pertama, kode Java dikompilasi menjadi bytecode. Bytecode ini diinterpretasikan pada mesin yang berbeda

Antara sistem host dan sumber Java, Bytecode adalah bahasa perantara.

JVM di Java bertanggung jawab untuk mengalokasikan ruang memori.

Dalam tutorial JVM ini, Anda akan belajar-

Arsitektur JVM

Sekarang dalam tutorial JVM ini, mari kita pahami Arsitektur JVM. Arsitektur JVM di Java berisi classloader, area memori, mesin eksekusi, dll.

1) Pemuat Kelas

Pemuat kelas adalah subsistem yang digunakan untuk memuat file kelas. Ia melakukan tiga fungsi utama yaitu. Memuat, Menautkan, dan Inisialisasi.

2) Area Metode

Area Metode JVM menyimpan struktur kelas seperti metadata, kumpulan runtime konstan, dan kode untuk metode.

3) Tumpukan

Semua Objek, variabel instan terkait, dan array disimpan di heap. Memori ini umum dan dibagikan di beberapa utas.

4) Tumpukan bahasa JVM

Tumpukan bahasa Java menyimpan variabel lokal, dan itu sebagian hasil. Setiap utas memiliki tumpukan JVM sendiri, dibuat secara bersamaan saat utas dibuat. Bingkai baru dibuat setiap kali metode dipanggil, dan akan dihapus saat proses pemanggilan metode selesai.

5) Register PC

Register PC menyimpan alamat instruksi mesin virtual Java yang sedang dieksekusi. Di Java, setiap thread memiliki register PC yang terpisah.

6) Tumpukan Metode Asli

Tumpukan metode asli menyimpan instruksi kode asli tergantung pada perpustakaan asli. Itu ditulis dalam bahasa lain, bukan Java.

7) Mesin Eksekusi

Ini adalah jenis perangkat lunak yang digunakan untuk menguji perangkat keras, perangkat lunak, atau sistem yang lengkap. Mesin eksekusi pengujian tidak pernah membawa informasi apa pun tentang produk yang diuji.

8) Antarmuka Metode Asli

Antarmuka Metode Asli adalah kerangka kerja pemrograman. Hal ini memungkinkan kode Java yang berjalan di JVM untuk dipanggil oleh perpustakaan dan aplikasi asli.

9) Pustaka Metode Asli

Native Libraries adalah kumpulan dari Native Libraries(C, C++) yang dibutuhkan oleh Execution Engine.

Proses Kompilasi &Eksekusi Kode Perangkat Lunak

Untuk menulis dan menjalankan program perangkat lunak, Anda memerlukan yang berikut

1) Editor – Untuk mengetik program Anda, notepad dapat digunakan untuk ini

2) Penyusun – Untuk mengubah program bahasa tinggi Anda menjadi kode mesin asli

3) Penaut – Untuk menggabungkan referensi file program yang berbeda dalam program utama Anda bersama-sama.

4) Pemuat – Untuk memuat file dari perangkat penyimpanan sekunder Anda seperti Hard Disk, Flash Drive, CD ke dalam RAM untuk dieksekusi. Pemuatan dilakukan secara otomatis saat Anda mengeksekusi kode Anda.

5) Eksekusi – Eksekusi aktual dari kode yang ditangani oleh OS &prosesor Anda.

Dengan latar belakang ini, lihat video berikut &pelajari cara kerja internal JVM dan arsitektur JVM (Java Virtual Machine).

Klik di sini jika video tidak dapat diakses

Proses Kompilasi dan Eksekusi kode C

Untuk memahami proses kompilasi Java di Java. Mari kita lihat sekilas proses kompilasi dan penautan di C.

Misalkan di main, Anda telah memanggil dua fungsi f1 dan f2. Fungsi utama disimpan dalam file a1.c.

Fungsi f1 disimpan dalam file a2.c

Fungsi f2 disimpan dalam file a3.c

Semua file ini, yaitu, a1.c, a2.c, dan a3.c, diumpankan ke compiler. Yang outputnya adalah file objek yang sesuai yang merupakan kode mesin.

Langkah selanjutnya adalah mengintegrasikan semua file objek ini ke dalam satu file .exe dengan bantuan linker. Linker akan menyatukan semua file ini dan menghasilkan file .exe.

Selama program dijalankan, program loader akan memuat a.exe ke dalam RAM untuk dieksekusi.

Kompilasi dan Eksekusi kode Java di Java VM

Sekarang dalam tutorial JVM ini, mari kita lihat proses untuk JAVA. Di main Anda, Anda memiliki dua metode f1 dan f2.

Kompiler akan mengkompilasi ketiga file tersebut dan menghasilkan 3 file .class yang sesuai yang terdiri dari kode BYTE. Tidak seperti C, tidak ada penautan yang dilakukan .

Java VM atau Java Virtual Machine berada di RAM. Selama eksekusi, menggunakan pemuat kelas, file kelas dibawa ke RAM. Kode BYTE diverifikasi untuk setiap pelanggaran keamanan.

Selanjutnya, mesin eksekusi akan mengubah Bytecode menjadi kode mesin Native. Ini hanya dalam waktu kompilasi. Ini adalah salah satu alasan utama mengapa Java relatif lambat.

CATATAN: JIT atau Just-in-time compiler adalah bagian dari Java Virtual Machine (JVM). Ini menafsirkan bagian dari Kode Byte yang memiliki fungsi serupa pada saat yang sama.

Mengapa Java adalah Bahasa yang Ditafsirkan dan Dikompilasi?

Bahasa pemrograman diklasifikasikan sebagai

Sebuah kompiler adalah program yang mengubah program dari satu tingkat bahasa ke tingkat bahasa lainnya. Contoh konversi program C++ menjadi kode mesin.

Kompilator java mengubah kode java tingkat tinggi menjadi bytecode (yang juga merupakan jenis kode mesin).

Seorang penerjemah adalah program yang mengubah program pada satu tingkat ke bahasa pemrograman lain pada tingkat yang sama. Contoh konversi program Java ke C++

Di Java, generator Just In Time Code mengubah bytecode menjadi kode mesin asli yang berada pada level pemrograman yang sama.

Oleh karena itu, Java adalah bahasa yang dikompilasi dan diinterpretasikan.

Mengapa Java lambat?

Dua alasan utama di balik kelambatan Java adalah

  1. Tautan Dinamis: Tidak seperti C, penautan dilakukan saat run-time, setiap kali program dijalankan di Java.
  2. Penerjemah Waktu Proses: Konversi kode byte menjadi kode mesin asli dilakukan pada saat run-time di Java yang selanjutnya memperlambat kecepatan

Namun, versi terbaru Java telah mengatasi kemacetan kinerja hingga batas tertentu.

Ringkasan :


java

  1. Apa itu CNC?
  2. Java 10 - Jabat Tangan Thread-lokal
  3. Apa yang dimaksud dengan pembubutan mesin?
  4. Apa itu Desain Arsitektur?
  5. Apa itu Baut Mesin?
  6. Apa itu Mesin Pemintal?
  7. Apa itu Mesin Penjual Susu?
  8. Apa itu Mesin Bor Horisontal?
  9. Apa itu Mesin Press Otomatis?
  10. Apa itu pemeliharaan mesin