Mengapa Java Platform Bahasa Independen?

Diterbitkan: 2021-02-08

Daftar isi

pengantar

Java telah mendapatkan popularitas besar di antara semua bahasa pemrograman lainnya sejak kelahirannya. Dan alasan untuk tanggapan yang begitu besar adalah kemampuan untuk menyediakan fitur-fitur unik. Sintaks Java akan hampir mirip dengan c++ tetapi menyediakan fitur yang jauh dari c++.

Ketersediaan pemrograman berorientasi objek (OOP) membuat java menonjol dari semua bahasa lain yang tersisa pada masanya. Java dikembangkan untuk menggunakan OOP pada intinya dan itu adalah salah satu alasan untuk menjadi bahasa yang paling banyak digunakan. Konsep ini meningkatkan reusability, eksekusi yang mulus. Pada saat ini, mungkin ada pertanyaan di benak kita “mengapa kita harus menggunakan suatu benda?”.

Objek di Java mirip dengan struktur dalam bahasa c, di mana kita mengikat metode dan variabel yang sama bersama-sama. Bersamaan dengan itu Java juga menyediakan abstraksi, enkapsulasi, pewarisan, dan polimorfisme yang mendorong pengguna untuk mengimplementasikan objek.

Java memainkan peran dominan di banyak domain seperti pengembangan aplikasi, pengembangan web, membangun alat perangkat lunak. Ini juga memiliki banyak perpustakaan yang membuat segalanya lebih mudah. Juga, ketersediaan IDE memainkan peran penting dalam mendapatkan perhatian pengembang. IDE seperti Eclipse, IntelliJ, NetBeans sering digunakan oleh banyak pengembang.

Baiklah, sekarang mari kita masuk ke pembahasan kita.

Tapi pertama-tama, apa yang dimaksud dengan independensi platform?. Untuk mendapatkan jawaban atas pertanyaan itu, kita perlu mengetahui apa yang terjadi ketika kita mengkompilasi sebuah kode.

Menyusun Kode

Setiap kali kami menulis kode, kami mengikuti sintaks bahasa pemrograman, yang akan memiliki cukup banyak keterbacaan. Dan itu berisi beberapa kata, frasa, nama variabel, nama metode, dll. Semua hal ini dianggap sebagai teks yang dapat dibaca manusia dan dapat dipahami manusia.

Jadi mesin menggunakan kompiler untuk mengubah kode sumber menjadi kode yang dapat dibaca mesin yang juga disebut sebagai bahasa tingkat mesin. Kompiler membangun kode tingkat mesin dalam presentasi tertentu sehingga dapat dengan mudah dipahami oleh CPU dan karenanya menjalankannya dengan mulus.

Bangunan bahasa tingkat mesin ini berbeda untuk setiap bahasa pemrograman dan setiap sistem operasi. Misalnya, c/c++ menghasilkan file .exe yang tidak sama untuk dua mesin jika mereka berjalan pada sistem operasi yang berbeda.

Dan di sini muncul masalah!

Ketika bahasa tingkat mesin berbeda untuk setiap sistem operasi, maka kami tidak dapat menjalankan kode yang dikompilasi di mesin yang berbeda di mesin baru, kecuali jika kedua sistem beroperasi pada sistem operasi yang sama. Ini terasa seperti omong kosong bagi banyak programmer dan pengembang.

Tetapi Java membuat segalanya lebih mudah, dan Java memiliki solusi untuk ini. Mari kita mulai.

Java adalah Platform Independen

Jadi apa yang terjadi ketika kita mengkompilasi kode di java?

Setiap kali kita memasukkan pernyataan "javac filename.java" atau mengkompilasi kode di java, javac mengkompilasi kode. Dan itu menciptakan kode perantara yang disebut Kode Byte.

Di sinilah java membuat perbedaan antara semua bahasa pemrograman yang berbeda. Itu membuat file .class, yang dianggap sebagai kode byte. Sedangkan bahasa seperti c/c++ akan membuat kode yang dapat dieksekusi secara native ketika dikompilasi dan dengan demikian membuatnya bergantung pada platform.

Tunggu, ini terlalu dini untuk perayaan. Kode byte ini tidak dapat dieksekusi. Kami membutuhkan penerjemah untuk mengeksekusi kode byte ini. Dan JVM melakukan pekerjaan ini. Umumnya, JVM berada di memori utama komputer kita. Java Virtual Machine bertindak sebagai juru bahasa dan kemudian mengeksekusi kode byte yang dihasilkan oleh javac.

Dan sekarang kita selesai, kode kita berhasil dieksekusi.

Jadi bagaimana java akan mengelola semuanya sendirian?

Dan jawabannya adalah, itu karena JVM. Kode byte yang dihasilkan oleh kompilasi kode sumber akan berjalan di sistem operasi apa pun, tetapi JVM yang ada di mesin berbeda untuk setiap sistem operasi. Dan ini adalah bagaimana java dianggap sebagai bahasa pemrograman platform-independen.

Untuk memahaminya dengan benar, mari kita pahami arsitektur dan cara kerja JVM.

Arsitektur JVM

JVM adalah bagian dari lingkungan runtime java dan bertanggung jawab untuk mengubah file .java menjadi file .class. Ketika kami mengkompilasi kode Java, JVM memanggil metode utama dalam kode sumber.

Arsitektur JVM

Pemuat Kelas

Ini adalah subsistem di mesin virtual java. Itu memuat file .class, memeriksa apakah ada pengecualian dan itu adalah alasan untuk beberapa pengecualian runtime. Dan setelah memeriksanya mengalokasikan memori untuk variabel dan metode yang ada, tetapkan nilai default ke variabel dan array. Itu juga mengeksekusi metode atau variabel statis yang ada dalam kode.

Ada 3 built-in class loader di JVMm, bootstrap classloader, Extension classloader, Application classloader.

Area Memori di JVM

Metode/Area Kelas

Ini menyimpan informasi seperti nama kelas, nama metode, variabel. Ini adalah sumber daya bersama untuk semua metode dan variabel di kelas.

Tumpukan

Ini menyimpan informasi dari semua data yang disimpan di area heap.

Tumpukan Bahasa JVM

Ini menyimpan informasi dalam blok juga disebut stack-frame/frame, yang menyimpan informasi saat ini ketika ada panggilan fungsi, menyimpan variabel lokal, juga memainkan peran dominan dalam manajemen thread.

Daftar PC

Ini menyimpan alamat instruksi yang sedang dieksekusi. Ini berguna dalam situasi eksekusi multi-utas.

Tumpukan Metode Asli

Ini menyimpan semua informasi dari metode asli yang digunakan.

Mesin Eksekusi

Mesin Eksekusi akan mengeksekusi kode byte, dan menghapus memori yang dialokasikan ke objek yang tidak dapat dijangkau atau tidak direferensikan. Penerjemah di mesin eksekusi akan mengeksekusi kode byte dengan membacanya dalam aliran dan menafsirkan baris demi baris.

Ini juga memiliki bagian menarik yang disebut kompiler JIT (Just In Time Compiler), di mana ia membuat kode eksekusi asli untuk metode, jadi jika ada beberapa panggilan fungsi maka JVM tidak perlu menafsirkannya lagi, melainkan langsung menggunakan kode asli yang dapat dieksekusi. Oleh karena itu meningkatkan kinerja eksekusi.

Antarmuka Metode Asli

Antarmuka ini digunakan oleh java untuk berinteraksi dengan aplikasi yang diimplementasikan dalam berbagai bahasa seperti C/C++. Interaksi tersebut bersifat dua arah, dimana JVM dapat memanggil aplikasi tersebut atau dapat dipanggil oleh aplikasi tersebut.

Perpustakaan Metode Asli

Itu melacak perpustakaan bahasa asli, yang dapat digunakan oleh mesin eksekusi.

Sekarang setelah kita memahami arsitektur JVM, mari kembali ke diskusi kita. Jadi JVM ini berbeda untuk sistem operasi yang berbeda, tetapi output yang dihasilkan oleh JVM tersebut akan sama untuk kode byte yang sama yang diberikan.

Baca Juga: Ide & Topik Proyek Java

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Kesimpulan

Kami telah melalui beberapa fitur unik java, memahami apa yang terjadi ketika kami mengkompilasi kode dalam bahasa seperti C/C++, memahami perbedaan antara kode yang dapat dieksekusi secara native dan kode byte. Kami telah menjelaskan mengapa java dianggap sebagai bahasa yang tidak bergantung pada platform, memahami bahwa JVM adalah alasan di balik independensi platform java. Kami telah melihat arsitektur JVM untuk pemahaman yang lebih baik.

Sekarang setelah Anda mengetahui alasan mengapa Java tidak bergantung pada platform, jelajahi fitur unik Java lainnya dan mulailah menggunakannya!

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek, dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Apa kelebihan Java dibandingkan bahasa lain?

Ada banyak keunggulan Java dibandingkan bahasa lain. Mari kita mulai dengan keuntungan paling atas, Java adalah platform independen. Kode Java dapat berjalan di platform perangkat keras, sistem operasi, dan browser apa pun. Itu dapat berjalan di perangkat apa pun. Ini berarti bahwa setelah Anda menulis aplikasi Anda di Java, Anda dapat menjalankannya di perangkat apa pun. Ini sesederhana itu! Juga, setelah Anda menulis kode Anda, sangat mudah untuk men-debug dan memperbaiki bug. Akhirnya, Java berorientasi objek. Ini berarti Anda perlu menggunakan program dan kode yang lebih kecil. Ini akan membuat kode Anda lebih mudah digunakan. Jika ada modifikasi yang diperlukan, kode kurang rentan terhadap kesalahan. Ini memiliki fitur seperti Multithreading, Manajemen Memori, Platform independen, Keamanan, Mesin Virtual yaitu, bytecode, Kerangka Koleksi, Pengumpul Sampah, arsitektur Berlapis, dll.

Mengapa Java platform-independen?

Java adalah platform-independen karena menggunakan mesin virtual. Bahasa pemrograman Java dan semua API dikompilasi menjadi bytecode. Bytecode secara efektif tidak bergantung pada platform. Mesin virtual menangani perbedaan antara bytecode untuk platform yang berbeda. Oleh karena itu, persyaratan run-time untuk Java sangat kecil. Mesin virtual Java menangani semua masalah terkait perangkat keras, sehingga tidak ada kode yang harus dikompilasi untuk perangkat keras yang berbeda.

Apa itu pengumpulan sampah otomatis di Jawa?

Pengumpulan sampah otomatis adalah teknik pengumpulan sampah di mana pengumpul sampah berjalan secara otomatis, tanpa programmer harus menulis kode untuk itu. Di Java, pengumpulan sampah dilakukan dengan menempatkan Java Virtual Machine ke dalam mode khusus. Pengumpul sampah akan berjalan ketika melihat kesempatan untuk melakukannya. Beberapa pengumpul sampah menggunakan pendekatan stop-the-world, dan Java Virtual Machine harus berhenti menjalankan program untuk melakukan pengumpulan sampah. Pengumpulan Sampah bukanlah konsep yang mudah, tetapi begitu Anda mendapatkannya, tidak ada jalan untuk melihat ke belakang. Dan pengumpulan sampah Java adalah salah satu yang paling mudah dipahami.