Berikut ini beberapa karakteristik Java:
- JAVA IS SIMPLE
Sebenarnya tidak ada satu bahasa pemrograman pun yang dapat dikatan sederhana (simple). Akan tetapi bila dibandingkan dengan pendahulunya seperti bahasa C++ yang merupakan bahasa pemrograman yang mendominasi dunia pemrograman Java memang lebih sederhana. Biarpun Java sebagian besar dibuat menggunakan bahasa C++, tetapi dibuat lebih sederhana dan lebih ditingkatkan lagi kemampuannya.
- JAVA IS OBJECT ORIENTED
Java memang sudah sejak dari awal dirancang untuk memenuhi kemampuan pemrograman berorientasi objek. Pemrograman berorientasi objek adalah pendekatan atau metodoli perancangan program berdasarkan objek. Metode ini menggantikan metode prosedural yang telah lama digunakan. Dalam pemrograman berorientasi objek semua hal dapat dianggap objek.
- JAVA IS DISTRIBUTED
Distributed computing adalah metode komputerisasi dengan menggunakan beberapa komputer yang dihubungkan dengan jaringan untuk mengelola tugas-tugas tertentu. Java telah memiliki kemampuan networking yang bagus, yang menjadikan menulis program networking seperti mengirim dan menerima data dari sebuah file.
- JAVA IS INTERPRETED
Karakteristik yang satu ini penting untuk dimengerti oleh pengguna Java yang baru pertama kali mengenal Java. Java adalah bahasa pemrograman yang menggunakan interpreter atau "penerjemah" supaya dapat menjalankan program.
- JAVA IS ROBUST
Robust dapat diartikan dapat diandalkan. Sebenarnya tidak ada satu bahasa pemrograman pun yang dapat diandalkan. Akan tetapi bahasa pemrograman Java memang dapat diandalkan untuk segala macam keperluan karena Java telah melewati berbagai macam proses dalam perkembangannya. Java telah menghilangkan dan mengantisipasi berbagai macam gangguan (bug) dan kesalahan-kesalahan yang umum terjadi dalam pemrograman yang sering ditemukan pada bahasa pemrograman lainnya.
- JAVA IS SECURE
Sebagai bahasa pemrograman internet, Java digunakan pada lingkungan networking dan terdistribusi. Jika Anda mengunduh Java applet dan menjalankannya pada komputer Anda, maka Anda tidak perl khawatir tentang kerusakan yang mungkin akan ditimbukan olehnya. Hal ini karena Java tidak menyediakan akses secara bebas ke sistem Anda secara langsung.
- JAVA IS ARCHITECHTIRE-NEUTRAL
Maksudnya adalah program yang dihasilkan oleh Java tidak tergantung kepada arsitektur komputer tertentu. Karena program Java berjalan dalam lingkungan JVM (Java Virtual Machine), program Java dapat dijalankan pada arsitektur komputer yang berbeda-beda.
- JAVA IS PORTABLE
Karena Java netral terhadap arsitektur komputer dan sistem operasi, dengan sedirinya program Java dapat dibawa kemana-mana dan dijalnkan dimana-mana. Anda dapat mengompilasi program Java Anda dan dapat menjalankannya pada mesin lainnya tanpa melakukan kompilasi ulang.
- JAVA PERFOMANCE
Kinerja atau performa dari bahasa pemrograman Java ini sering mendapat kritikan atau dianggap lambat oleh beberapa developer. Akan tetapi dari tahun ke tahun kecepatan program Java terus ditingkatkan. Dengan adanya penemuan-penemuan teknologi prosesor yang memiliki kecepana proses tinggi, kelamahan ini menjadi tidak terasa.
- JAVA SI MULTITHREATED
Seperti halnya bahasa C, C++, dan bahasa pemrograman lainnya yang mengenal pemrosesan beberapa tugas secara bersamaan (multithrading) Java juga dibekali dengan kemampuan tersebut. Kemampuan multithreading ini sangat baik bila digunakan pada alam GUI (Graphical User Interface), dan pemrograman jaringan. Pada pemrograman GUI banyak hal terjadi bersamaan, misalnya user dapat mendengarkan lagu tetapi juga sambil mengetik atau melakukan browsing. Sedangkan pada pemrograman jaringan sebuah server dapat melayani beberapa permintaan servis dari client-client secara bersamaan.
- JAVA IS DYNAMIC
Java sudah didesain sedemikian rupa untuk dapat beradaptasi pada lingkungan yang selalu berubah-ubah. Misalnya Anda dapat mengunduh sebuah class secara langsung tanpa melakukan rekompilasi ulang. Dengan begini para pengembang aplikasi tidak perlu membuat dan bagi user menginstal software versi baru, bila ada penambahan fitur maka dapat ditambahkan langsung.