Berdasarkan informasi yang dirilis oleh Sun Microsystem pada waktu itu, Java adalah bahasa pemrograman yang simple, object-oriented, distributed, robust, secure, architecture-neutral, portable, high-performace, multithreaded and juga dynamic. Berikut ini adalah penjelasan secara singkat beberapa karakteristik dari Java.
1. Simple (sederhana).
Java adalah bahasa pemrograman yang sangat populer. Sintaksis bahasa Java mirip dengan bahasa C++. Java memang berasal dari bahasa C++ yang terlebih dahulu telah mengalami penyederhanaan dan peningkatan. Banyak fitur dari bahasa C++ yang jarang digunakan dan kurang menguntungkan dihilangkan. Sebagai contoh, bahasa Java tidak mendukung turunan berlapis (multiple inheritance), union dan tipe data pointer.
2. Object-oriented (berorientasi obyek).
Bahasa pemrograman berorientasi obyek (OOP) memandang segala sesuatu yang ada di dunia ini sebagai obyek. Sebagai contoh, lingkaran, orang, meja, hutang dan piutang dapat dipandang sebagai obyek. Bahasa pemrograman yang berorientasi pada obyek menitikberatkan pada membuat obyek, memanipulasi obyek serta memastikan bahwa obyek satu dengan yang lain bekerja bersama.
Setiap obyek mempunyai data (attribute atau property) dan operasi atau metoda (method) yang digunakan untuk memanipulasi data. Programer Java dapat membuat obyek dimana metoda adalah satu-satunya cara untuk memanipulasi data.
3. Distributed (terdistribusi).
Terdistribusi melibatkan beberapa komputer untuk dapat bekerja bersama-sama dalam suatu jaringan (network). Secara khusus, bahasa pemrograman Java didesain untuk bekerja di lingkungan jaringan. Java mempunyai pustaka kelas (Java class library) yang lengkap untuk berkomunikasi menggunakan protokol TCP/IP, termasuk HTTP dan FTP.
4. Robust (kuat).
Java memberi banyak penekanan pada pengecekan awal terhadap kemungkinan kesalahan (error). Kompiler Java dapat mendeteksi lebih dini kesalahan yang mungkin muncul pada waktu program Java dijalankan (execution time).
Di dalam menulis program Java, programer juga dituntut untuk bisa menangani exception yaitu error atau kesalahan yang mungkin muncul saat program Java dijalankan, sehingga program tetap dapat berjalan pada eksekusi normal.
5. Architecture-Neutral (tidak bergantung platform).
Kode sumber Java (Java source code) yang sudah diubah ke dalam bytecode Java dapat dijalankan dengan menggunakan interpreter. Keistimewaan ini yang menjadikan Java tidak bergantung pada platform manapun (platform-independent).
Dengan Java Virtual Machine (JVM), Anda hanya perlu menulis program Java sekali dan selanjutnya dapat dijalankan pada platform yang berbeda seperti di sistem operasi Microsoft Windows, OS/2, Macintosh, UNIX dan IBM AS/400.
6. Dynamic (dinamis).
Tidak seperti bahasa C++ yang memerlukan kompilasi ulang secara menyeluruh bila kelas di atasnya (parent class) mengalami perubahan, Java menggunakan interfes (interface) untuk menghilangkan ketergantungan ini, sehingga kelas di bawahnya (child class) atau obyek klien (client object) tidak akan terpengaruh pada perubahan tersebut.