Dapat Berjalan di berbagai platform
Sebuah program java yang telah jadi, dapat dijalankan pada platform yang berbeda, seperti windows, linux, maupun MacOS, selama di komputer tersebut terdapat Java Runtime Environment.
Berorientasi Objek
Memungkinkan untuk memecah program menjadi objek-objek yang lebih kecil, serta memungkuinkan untuk memakai kembali komponen – komponen yang telah dibuat, sehingga membuat library sendiri sangat mudah
Java API (Application Programming Interface)
Di dalam API java terdapat berbagai macam package dan class yang menghemat waktu dan tenaga. Java bersifat open source, kita dapat mengubah source code Java API.
API tersebut juga terdokumentasi dengan baik, hal ini didukung tersedianya fasilitas Javadoc, yang merupakan syntax untuk membuat komentar dalam source code, yang nantinya di-generate untuk menjadi dokumentasi berekstensi .html.
Java Terlalu Lambat untuk Game
Lebih tepatnya dinyatakan sebagai “Java lebih lambat daripada C dan C++, bahasa yang dipakai untuk membuat sebuah game”. Versi pertama java diketahui lebih lambat 20-40 kali dari 9++. Tetapi masalah itu sudah teratasi dengan munculnya versi-versi anyar.
Java sangat boros memory
Umumnya Kelemahan ini diutarakan oleh programmer C++ yang mungkin kurang mengerti bagaimana Java bekerja. Mereka menganggap bahwa objek yang sudah tidak dipakai dalam program tidak akan dilakukan garbage collecting, sehingga memenuhi memori yang menyebabkan crash. Tapi kenyataanya,hal tersebut terjadi karena teknik pemrograman yang buruk. Sebab garbage collector, java hanya akan melakukan tugasnya saat sebuah objek betul-betul sudah tidak digunakan dalam program
Tingkat bahasa yang terlalu tinggi
Java tidak mampu mengakses secara langsung hardware seperti video card dan sebagainya. Ini akan berdampak pada kemampuan Java untuk mengakses perangkat input game, seperi joystick dan gamepad yang berimbas pada penurunan performa game. Mau tidak mau programmer harus memprogram sampai low-level untuk mendapat performa maksimal. Namun permasalahan ini juga dapat diatasi dengan memakai library tambahan yang mampu menghubungkan java langsung ke hardware