Java
Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang
bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan
spesifikasi hardware dan platform dimana kompilasi kode Java terjadi.
Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari platform
manapun karena proses kompilasi diselesaikan oleh JVM.
Aplikasi program Java diciptakan dengan file teks
berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode
berekstensi .class atau lebih. Bytecode adalah serangkaian
instruksi serupa instruksi kode mesin. Perbedaannya adalah kode mesin harus
dijalankan pada sistem komputer dimana kompilasi ditujukan, sementara bytecode
berjalan pada java interpreter yang tersedia di semua platform sistem
komputer dan sistem operasi.
Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan
seorang programmer mengalokasikan memori pada saat dijalankan. Namun, setelah
menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan
kembali blok memori tersebut supaya program lain dapat menggunakannya.
Dalam C, C++ dan bahasa lainnya, adalah
programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat
menyulitkan bilamana programmer tersebut alpa untuk mengembalikan blok memori
sehingga menyebabkan situasi yang dikenal dengan nama memory leaks.
Program Java melakukan garbage collection yang
berarti program tidak perlu menghapus sendiri objek–objek yang tidak digunakan
lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh programmer dan
mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada
bahasa yang memungkinkan alokasi dinamis.
Code Security
Code Security terimplementasi
pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan
model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.
1. Pertama, class-loader
menangani pemuatan kelas Java ke runtime interpreter. Proses
ini menyediakan pengamanan dengan memisahkan kelas–kelas yang berasal dari local
disk dengan kelas–kelas yang diambil dari jaringan. Hal ini
membatasi aplikasi Trojan karena kelas–kelas yang berasal dari local
disk yang dimuat terlebih dahulu.
2. Kedua, bytecode
verifier membaca bytecode
sebelum dijalankan dan menjamin bytecode memenuhi aturan–aturan
dasar bahasa Java.
3. Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan
apakah program berhak mengakses sumber daya seperti sistem file, port jaringan,
proses eksternal dan sistem windowing. Setelah seluruh proses tersebut
selesai dijalankan, barulah kode program dieksekusi.
Tidak ada komentar:
Posting Komentar