Pada dasarnya eksekusi interpreter lebih lambat jika bandingkan dengan kompilasi executable .exe, maka SunMicrosystem menyuplai teknologi HotSpot yang menyediakan compiler JIT (Just In- Time) untuk bytecode dan menjadi bagian JVM untuk mengkompilasi bytecode menjadi executable code secara real-time, sehingga didapatkan kecepatan yang lebih baik dalam menjalankan aplikasi JAVA.
Bahasa Java kali pertama dikonsepkan oleh James Gosling, Patrick Naughton, Chris Warth, Ed Frank, dan Mike Sheridan di Sun Microsystem tahun 1991, dengan nama bahasa programnya “Oak”. Kemudia pada Tahun 1995 mereka mengunjungi sebuah cafĂ© kopi lokal dan mengubah namanya menjadi “Java” sampai sekarang.
Bahasa Java masih berhubungan dengan bahasa C dan C++, karena Java menurunkan sintaks-nya dari C dan objeknya diadaptasi dari C++, sehingga Java mempunyai sifat case sensitive (membedakan antara huruf besar maupun kecil).
JAVA mendukung Pemrograman Berorientasi Objek
Java merupakan bahasa pemrograman yang berorientasi objek atau OOP (Object Oriented Programming). Elemen-elemen dari pemrograman berorientasi objek ini diantaranya adalah encapsulation, polymorphism dan inherit.
Encapsulation merupakan mekanisme pemrograman yang mengikat data dan program bersama-sama juga mengamankannya dari penyalahgunaan dan interferensi dari luar. Melalui objek, data dan kode dapat menjadi private, protected atau public bagi objek tersebut. Seperti yang diketahui kode dan data private hanya dapat diakses oleh bagian dalam dari objek tersebut sedangkan kode dan data protected aksesnya selain dari dalam objek sendiri, dapat diakses oleh objek keturunannya. Kode dan data public dapat diakses oleh objek luar.
Unit dasar dari encapsulation ini adalah class. Class mendefinisikan format dari objek yang akan dibangun sehingga objek merupakan instansi (instance) dari class. Kode dan data merupakan anggota (member) dari class, dimana data disebut members variables atau instance variables sedangkan kode yang mengoperasikan data disebut member methods atau methods. Method dalam java merupakab subrutin atau function.