Java Class File dan Fungsinya
/* hasil dari kompilasi bahasa program
ini akan menghasilkan beberapa class file */
/* deklarasi class */
class Sample { }
/* deklarasi class */
class Student { }
/* deklarasi class */
class Test{
public static void main(String[] args)
{
System.out.println("struktur Class File");
}
}
Tampilan dari struktur class file
ClassFile{
magic_number;
minor_version;
major_version;
constant_pool_count;
constant_pool[];
access_flags;
this_class;
super_class;
interfaces_count;
interfaces[];
fields_count;
fields[];
methods_count;
methods[];
attributes_count;
attributes[];
}
Berikut penjelasan dari beberapa elemen class file:
satu, magic_number: 4 bytes pertama dari class file disebut dengan magic_number. magic_number adalah nilai predefinisi dimana JVM menggunakannya untuk mengidentifikasi apakah .class file yang sudah di-generated oleh kompilator, baik secara benar ataupun tidak. Nilai dari magic_number akan dinyatakan dalam hexadesimal seperti berikut:0xCAFEBABE
Sekarang lihat apa yang terjadi ketika JVM tidak menemukan magic_number. Misalkan memiliki .java file dengan nama Sample.java, setelah itu lakukan perintah step by step berikut ini pada sistem komputer.
/* deklarasi class */
class Sample
{
public static void main(String[] args)
{
System.out.println("Magic Number");
}
}
- step 1: Lakukan kompilasi program menggunakan perintah javac Sample.java.
- step 2: Buka file Sample.class, dan akan terlihat seperti gambar 1.
- step 3: Hapus salah satu simbol dari file Sample.class dan simpan kembali file tersebut.
- step 4: Jalankan program menggunakan java Sample command dan selanjutnya magic_number akan menampilkan run time exception seperti terlihat pada gambar 2.
Catatan: hasil ini akan bervariasi bergantung pada seberapa banyak data yang dihapus pada .class file.
Catatan: Kompilator Lower version dapat mengeksekusi generate .class file menggunakan major_version JVM, tetapi tidak sebaliknya. Jika hal tersebut dilakukan, maka akan didapatkan run time exception pada proses.
- step 1: Buka command prompt Windows dan coba periksa Kompilator Java dan versi JVM menggunakan perintah seperti diperlihatkan pada gambar 3 dan 4.
- step 2: Sekarang coba periksa versi lain yang lebih tinggi atau yang lebih rendah yang telah diinstal pada sistem komputer. Untuk melakukan instalasi versi terbaru Java dapat didownload melalui link oracle.com [klik]. Setelah itu, lakukan instalasi pada pc atau laptop dan catat lokasi instalasinya.
- step 3: Buka command prompt kedua pada Windows dan atur rute dari folder bin instalasi JDK seperti diperlihatkan pada step 2 sebelumnya. Dan periksa versi dari kompilator Java dan JVM yang telah diinstal tersebut seperti diperlihatkan pada gambar 5.
- step 4: Pada command prompt yang pertama coba lakukan kompilasi terhadap .java file yang tersedia sebelumnya, seperti file Sample.java. Hasil kompilasi diperlihatkan seperti gambar 6.
- step 5: Pada command prompt yang kedua pada Windows coba jalankan hasil kompilasi dari file Sample.java yang dilakukan sebelumnya, hasilnya muncul runtime exception seperti diperlihatkan pada gambar 7.
tiga, constant_pool_count: merepresentasikan angka dari konstanta pada konstanta pool. Ketika Java file dikompilasi, semua referensi variabel dan method ditampilkan pada konstanta class pool sebagai simbol referensi.
empat, constant_pool[]: merepresentasikan informasi mengenai konstanta yang ditampilkan dalam pool file.
lima, access_flags: menyediakan informasi mengenai modifier yang dideklarasikan untuk class file.
enam, this_class: merepresentasikan nama kualifikasi penuh dari class file.
tujuh, super_class: merepresentasikan nama kualifikasi penuh dari super class terdekat saat ini. Seperti pada file Sample.java, ketika melakukan kompilasi maka this_class bisa disebut sebagai Sample class dan super_class sebagai Object class.
delapan, interface_count: mengembalikan nilai dari implementasi interface oleh class file saat ini.
sembilan, interface[]: mengembalikan informasi implementasi interface oleh class file saat ini.
sepuluh, fields_count: merepresentasikan angka dari tampilan fields (variabel static) pada class file saat ini.
sebelas, fields[]: merepresentasikan informasi field (variabel static) dari class file saat ini.
dua_belas, method_count: merepresentasikan angka dari method yang ditampilkan dalam class file saat ini.
tiga_belas, method[]: mengembalikan informasi mengenai semua method yang ditampilkan dalam class file saat ini.
empat_belas, attributes_count: mengembalikan angka dari atribut (variabel instance) yang ditampilkan dalam class file saat ini.
lima_belas, attributes[]: menyediakan informasi mengenai semua atribut yang ditampilkan dalam class file saat ini.
- Portabilitas Antar Platform:
- Bytecode Universal: Java Class File berisi bytecode, yaitu representasi setengah-terkompilasi dari program Java. Bytecode ini bersifat universal dan dapat dieksekusi di berbagai platform yang memiliki JVM (Java Virtual Machine).
- Write Once, Run Anywhere (WORA): Konsep WORA adalah prinsip dasar Java, dimana pengembang dapat menulis kode Java satu kali dan menjalankannya di berbagai sistem operasi tanpa perlu melakukan modifikasi ulang.
- Keamanan dan Sandboxing:
- Isolasi Sumber Kode: Java Class File memungkinkan isolasi sumber kode dari sistem operasi tempat program dijalankan. Ini menciptakan lapisan keamanan yang efektif karena bytecode tidak dapat memanipulasi atau merusak sistem operasi host.
- Sandboxing Aplikasi: Dengan menggunakan Java Class File, Java memungkinkan implementasi sandboxing, dimana aplikasi dapat dijalankan dalam lingkungan terbatas dengan keterbatasan akses ke sumber daya sistem.
- Kemudahan Distribusi dan Instalasi:
- Distribusi File Tunggal: Program Java dapat didistribusikan sebagai satu file Java Class File tunggal atau sebagai arsip JAR (Java Archive) yang mengemas beberapa file kelas dan sumber daya lainnya.
- Instalasi yang Sederhana: Pengguna dapat dengan mudah menginstal dan menjalankan aplikasi Java dengan hanya mentransfer atau mendownload file Java Class, mengurangi kompleksitas proses instalasi.
- Manajemen Memori dan Kinerja:
- Optimasi Kinerja: Java Class File memberikan keuntungan dalam hal manajemen memori dan kinerja. Bytecode dieksekusi oleh JVM dengan menggunakan teknik seperti Just-In-Time (JIT) compilation untuk meningkatkan kinerja eksekusi program.
- Pengelolaan Memori yang Efisien: Java Virtual Machine secara dinamis mengelola memori, termasuk alokasi dan dealokasi, dengan cara yang efisien, membantu mencegah kebocoran memori dan meningkatkan penggunaan sumber daya.
- Rekayasa Ulang Kode:
- Keterbacaan dan Pemeliharaan Kode: Java Class File dapat dijadikan sebagai bentuk distribusi kode yang dapat dibaca oleh pengembang lain. Hal ini memudahkan proses rekayasa ulang kode dan pemeliharaan aplikasi dalam jangka waktu panjang.
- Modularitas dan Ketergantungan: Modul Java dapat diatur ke dalam paket, dan ketergantungan antar paket dapat diatur dengan rapi dalam file Java Class. Ini mendukung pembangunan aplikasi yang modular dan terstruktur.
- Lingkungan Pengembangan yang Kaya:
- Dukungan Lingkungan Pengembangan: File Java Class bekerja dengan baik dalam berbagai lingkungan pengembangan, termasuk IDE (Integrated Development Environment) populer seperti Eclipse, IntelliJ IDEA, dan NetBeans.
- Integrasi Alat Pengembangan: Java Class File dapat diintegrasikan dengan alat pengembangan dan manajemen proyek Java, memungkinkan pengembang menggunakan fitur-fitur seperti debugging, profil, dan pembangunan otomatis.
Kesimpulan
- Menjalankan Program Java Tanpa Method Main
- Nama Kelas File Java dan Fungsinya
- Cara Menjalankan Class File Java pada Direktori
- Keunggulan Microservices Java dan Fungsinya
- Cara Predefinisi Class Java Sebagai Class atau Variabel
- Cara Menjadi Programmer Java yang Handal
- Cara Membuat Identifier Java dan Fungsinya
5 komentar untuk "Java Class File dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan Java Class File pada bahasa pemrograman Java?
BalasHapusJava Class File adalah sebuah file dengan esktensi .class yang berisi kode byte Java yang dapat dijalankan pada Java Virtual Machine atau JVM. Java Class File tersebut biasanya dibuat oleh kompilator Java dari file kode sumber bahasa Java, dimana hal ini membuat aplikasi Java yang telah dikembangkan dapat berdiri secara mandiri pada platform yang digunakan.
HapusJava Class File adalah format yang ditentukan secara tepat untuk Java yang akan dikompilasi oleh kompilator. Kode sumber Java dikompilasi menjadi file class yang dapat dimuat dan dijalankan oleh JVM apapun. Java Class File memungkinkan untuk dapat dijalankan pada lintas jaringan sebelum dimuat oleh JVM.
BalasHapusApa keterkaitan antara Java Class FIle dan JVM pada bahasa pemrograman Java?
BalasHapusAlasan kenapa kode program Java dapat dijalankan pada begitu banyak sistem operasi yang berbeda adalah karena sifatnya sebagai bahasa pemrograman yang multiplatform.
HapusSaat dilakukan kompilasi file .java menjadi file .class, maka file .class tersebut secara dengan kode biner pada bahasa pemrograman lainnya, dimana kode teresbut adalah kode file mesin yang sebenarnya dijalankan ketika sebuat program berjalan pada komputer. Namun alih-alih menyimpan kode mesin yang dapat dibaca secara langsung oleh komputer, Java menyimpan kode biner tersebut pada JVM. Sistem JVM berbeda dengan sistem yang dibuat pada sistem komputer pada umumnya, namun JVM dapat membaca semua file dengan tipe .class dan menerjemahkannya cengan cara yang sama pada setiap sistem komputer yang digunakan.
Hal ini memiliki dampak yang positif sekaligus juga dampak yang negatif pada aplikasi yang dikembangkan dengan bahasa pemrograman tersebut. Artinya, file apapun yang bertipe .class dapat dijalankan pada mesin komputer apapun selama mesin komputer tersebut memiliki JVM. Namun, sebaliknya jika komputer yang akan digunakan untuk menjalankan aplikasi Java tidak memiliki JVM maka komputer tersebut sudah pasti tidak akan bisa menjalankan program apapun yang dibuat dengan menggunakan bahasa Java.