Materi
String bukan tipe primitif melainkan kelas. Variabel int menyimpan angkanya sendiri, sedangkan variabel String menyimpan referensi, yaitu penunjuk ke sebuah objek teks. Variabel objek boleh bernilai null, artinya tidak menunjuk apa pun; variabel primitif tidak boleh.
Objek String tidak bisa diubah setelah dibuat. Method yang tampak mengubah teks, seperti toUpperCase, trim, atau replace, sebenarnya membuat String baru dan mengembalikannya. Hasil itu harus disimpan; bila tidak, variabel aslinya tetap berisi teks lama.
String kota = "bandung";
kota.toUpperCase(); // hasilnya dibuang
System.out.println(kota); // bandung
kota = kota.toUpperCase();
System.out.println(kota); // BANDUNGTanda + menggabungkan teks begitu salah satu sisinya String, dan ekspresi dibaca dari kiri. "Total: " + 2 + 3 menghasilkan Total: 23, karena teks lebih dulu bertemu angka 2. Sebaliknya 2 + 3 + " item" menghasilkan 5 item, karena dua angka di kiri dijumlahkan sebelum bertemu teks. Kurung mengubah urutannya: "Total: " + (2 + 3) menghasilkan Total: 5.