Pemrograman berbasis objek dengan bahasa java mengenal nilai literal. Nilai literal adalah nilai konstan yang terlihat secara eksplisit. Nilai angka yang berupa bilangan bulat di dalam program java dikenal sebagai tipe data int. Nilai literal int ditulis berupa bilangan berbasis 10 (desimal), 8 (oktal) dan 16 (hexadesimal). Digit untuk bilangan oktal memiliki range antara 0-7 sedangkan untuk bilangan hexadesimal memiliki range antara 0-15 yang dapat digantikan dengan huruf a-f atau A-F sebagai lambangnya. Untuk menuliskan angka yang memiliki ukuran yang sangat besar, dimana hanya tipe data long (64 bit) yang dapat menampungnya, kita perlu menambahkan sebuah karakter “L” atau karakter “l” di akhir nilai literal untuk memberi tahu kepada java bahwa nilai literal yang diketik bertipe data long  dan bukan bertipe int. Untuk menulis nilai literal dalam bentuk oktal, anda dapat menulisnya dengan angka nol (0) di depannya, contoh: 01, 034 ,0425. Untuk bilangan heksadesimal, anda dapat menulisnya dengan didahului oleh tanda 0x (nol dan x). contoh 0x1, 0x234, 0xA dan seterusnya.

Bilangan floating point merupakan bilangan desimal yang berupa pecahan. Bilangan ini biasa ditulis menggunakan notasi standar biasa atau dengan menggunakan notasi ilmiah (scientific notation). Notasi standar menggunakan titik untuk menandakan pecahan, seperi 28.7 , 11.10, 7.28, sedangkan unyuk notasi ilmiah (scientific notation) dapat digunakan dengan menambahkan lambang En pada standard floating-point. E (eksponensial) berarti nilai floating point dikalikan dengan nilai 10 sebanyak n kali untuk mendapatkan nilai yang sebenarnya. Secara default semua nilai literal floating point yang ditulis dalam Java dianggap memiliki tipe data double. akan tetapi, secara eksplisit penentuan tipe data dari nilai literal yang ditulis dengan menambahkan lambang F atau f untuk tipe data float dan D (d) untuk tipe data double

Selain dua tipe diatas, java juga mengenal tipe data literal boolean, literal string dan literal karakter. secara umum, pada tipe data boolean, java mengenal dua nilai literal yaitu true dan false. Java juga mendukung penggunaan Unicode Characters yang mencakup hampir seluruh karakter yang dikenal oleh manusia. Tipe literal unicode characters ini dikenal dengan literal karakter. lebar tipe data char adalah 16 bit agar dapat merepresentasikan semua karakter yang ada. Literal String dalam java ditulis di antara tanda petik ganda, dan sama halnya seperti literal untuk karakter, escape sequence juga dapat digunakan disini.