Iklan
Java Virtual Machine (JVM) adalah penetes nama asli saat Anda memprogram di Jawa. Berlawanan dengan apa yang ditunjukkan namanya, Java Virtual Machine dapat ditemukan dalam kaitannya dengan bahasa pemrograman lain juga.
Secara umum, tidak perlu tahu apa itu Java Virtual Machine, atau bahkan apa fungsinya, untuk dapat memprogram di Jawa. Di sisi lain, membiasakan diri dengan cara kerja mesin tidak membantu meningkatkan pemahaman dan wawasan Anda secara keseluruhan.
Artikel ini membahas gagasan Java Virtual Machine, apa fungsinya untuk Anda, dan beberapa pro dan kontra yang paling penting. Meskipun saya sudah mencoba membuatnya sederhana, dan pasti ada literatur yang lebih maju tentang masalah ini, pemahaman dasar tentang Java dan pemrograman diharapkan.
Bahasa Tingkat Tinggi
Semantik bahasa pemrograman dirancang agar dekat dengan bahasa alami kita, sambil tetap ringkas dan mudah diinterpretasikan untuk sebuah mesin. Seperti yang mungkin Anda ketahui, bahasa pemrograman sepenuhnya berbeda dari kode mesin, seperangkat instruksi yang digunakan komputer untuk membuat dan menjalankan program. Ini kami sebut
bahasa tingkat tinggi; satu atau beberapa level abstraksi dari kode mesin.Sebelum dapat dijalankan, kode tingkat tinggi harus ditafsirkan terlebih dahulu. Banyak antarmuka pemrograman yang dikompilasi sebelumnya (Kompilasi AOT) untuk platform tertentu. Ini membuat program lebih efisien saat runtime, tetapi jauh lebih tidak kompatibel dengan platform yang berbeda. Java, sebaliknya, bekerja dengan bahasa perantara yang disebut Bytecode Java dan Mesin Virtual Java.
JVM & Java Bytecode
Ketika proyek Java Anda dibuat, itu menerjemahkan kode sumber (terkandung dalam *.Jawa file sumber) ke bytecode Java (paling sering terkandung dalam file * .class). Ini membawa kode tingkat tinggi Anda selangkah lebih dekat ke kode mesin, tetapi belum sampai di sana. Bytecode ini adalah kumpulan instruksi ringkas; lebih mudah bagi mesin untuk mengartikan, tetapi kurang dapat dibaca.
Ketika Anda menjalankan aplikasi Java di komputer, ponsel, atau platform lain yang mendukung Java, Anda pada dasarnya meneruskan bytecode Java ini ke Java Virtual Machine. Interpreter di Java Virtual Machine biasanya mulai mengkompilasi seluruh bytecode saat runtime, mengikuti prinsip-prinsip yang disebut kompilasi tepat waktu. Ini membuat untuk tipikal, meskipun sering sedikit keterlambatan saat membuka aplikasi Java, tetapi umumnya meningkatkan kinerja program dibandingkan dengan kompilasi ditafsirkan.
Keuntungan utama dari sistem ini adalah peningkatan kompatibilitas. Karena aplikasi Anda berjalan di mesin virtual alih-alih langsung pada perangkat keras Anda, pengembang dapat memprogram dan membangun aplikasi mereka sekali, yang kemudian dapat dieksekusi pada setiap perangkat dengan implementasi Java Virtual Mesin. Prinsip ini telah melahirkan slogan Jawa: “Menulis sekali, jalankan di mana-mana.”
Pro: Kompatibilitas & Peningkatan Keamanan
Selain kompatibilitas kode, Java Virtual Machine hadir dengan manfaat lain. Salah satu yang paling penting adalah keamanan relatif dari program Java sebagai hasil dari Java Virtual Machine. Keamanan, artinya program yang berjalan di mesin virtual jauh lebih kecil kemungkinannya mengganggu sistem operasi pengguna, atau merusak file data, jika terjadi kesalahan.
Con: Implementasi & Debugging JVM yang berbeda
Salah satu kritik utama yang menyuarakan kompatibilitas kode dan Java Virtual Machine adalah karena banyak implementasi yang berbeda dari yang terakhir. Soalnya, Java Virtual Machine bukanlah perangkat lunak. Oracle, pemilik Java, memiliki implementasi Java Virtual Machine, tetapi orang lain dapat membuatnya jika memenuhi berbagai klaim praktis dan kontraktual.
Implementasi yang berbeda ini berarti bahwa kode Anda dapat berjalan dengan lancar di satu Java Virtual Machine, tetapi crash dan burn pada yang lain. Meskipun, dalam praktiknya, Anda dapat menulis kode Anda sekali dan menjalankannya di mana-mana, terkadang kode yang lebih kompleks masih harus di-debug dalam implementasi Java Virtual Machine yang berbeda untuk memastikan operasi yang benar.
Apakah Anda memiliki pengalaman bekerja dengan Java Virtual Machine? Jika demikian, apakah ada sesuatu yang saya lewatkan di sini yang harus disebutkan?
Kredit Gambar: Michaelaw, Dcoetzee
Saya seorang mahasiswa penulis dan ilmu komputer dari Belgia. Anda selalu dapat membantu saya dengan ide artikel yang bagus, rekomendasi buku, atau ide resep.