1. Literal bilangan bulat

Dan sekarang untuk topik baru yang menarik — literal. Data yang ditulis langsung dalam kode program disebut literal . Kami tidak berbicara tentang data lama apa pun, tetapi nilai dari tipe primitif dan tipenya String.

Misalnya, Anda memiliki kode berikut:

Kode Literal
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

Literal dalam kode ini adalah angka 5, angka 10dan string ' Sum = '.

Di Jawa, semuanya, termasuk literal, memiliki tipe. Secara default, semua literal integer (bilangan bulat) dalam kode adalah ints. Tipe int adalah tipe integer Java standar.

Terlebih lagi, jika Anda memutuskan untuk menetapkan literal bilangan bulat ke variabel byte atau variabel pendek dalam kode Anda, tidak akan ada masalah. Anda hanya perlu memastikan bahwa nilai literal berada dalam rentang nilai yang dapat disimpan oleh tipe variabel.

Kompiler Java cukup pintar untuk memahami bahwa suatu bytevariabel dapat diberi integer literal 100 tanpa menimbulkan masalah.

Contoh:

Kode Keterangan
int a = 300;
Ini akan dikompilasi dengan baik.
byte a = 100; 
Ini akan dikompilasi dengan baik.
byte a = 300; 
Akan terjadi kesalahan kompilasi, karena nilai byte maksimum adalah 127.

Anda juga dapat menulis longliteral dalam kode Anda. Untuk melakukannya, tambahkan huruf Latin 'L' atau 'l' di akhir bilangan bulat.

Contoh:

Kode Keterangan
long a = 3000000000L; 
Ini akan dikompilasi dengan baik.
long a = 3000000000; 
Kesalahan kompilasi: 3 miliar terlalu besar untuk literal int.
int a = 3000000000L; 
Kesalahan kompilasi: literalnya panjang, tetapi variabelnya adalah int. Selain itu, 3 miliar lebih dari int maksimum.

Apakah Anda memperhatikan betapa sulitnya membaca angka besar yang terdiri dari 10 digit atau lebih? Anda tidak dapat langsung mengetahui apakah kode tersebut mengatakan 3 miliar atau 30 miliar. Untuk membuat kode lebih mudah dibaca (dan ini penting!), Java mengizinkan garis bawah untuk dimasukkan ke dalam literal numerik (tidak memengaruhi nilai angka).

Contoh di atas dapat ditulis ulang dengan garis bawah agar sedikit lebih jelas:

Kode Keterangan
long a = 3_000_000_000L; 
Ini akan dikompilasi dengan baik.
long a = 3_000_000_000; 
Kesalahan kompilasi: 3 miliar terlalu besar untuk literal int.
int a = 3_000_000_000L; 
Kesalahan kompilasi: literalnya panjang, tetapi variabelnya adalah int. Selain itu, 3 miliar lebih dari int maksimum.

Tapi kita tidak bisa menggunakan koma dalam literal numerik karena sudah digunakan untuk tujuan lain. Misalnya, untuk memisahkan argumen satu sama lain saat memanggil metode.



2. Literal bilangan real

Dalam kode Anda, Anda tidak hanya dapat menentukan bilangan bulat, tetapi juga literal floating-point (bilangan real).

Sebenarnya, aturannya cukup sederhana: jika angka dalam kode memiliki titik desimal di dalamnya, maka angka tersebut adalah literal titik-mengambang. Dan bukan sembarang literal, tapi doubleliteral.

Anda dapat membuat literal float, tetapi Anda harus meletakkan huruf 'F' (atau 'f') di akhir angka untuk melakukannya .

Contoh:

Kode Keterangan
double a = 100.0; 
Ini akan dikompilasi dengan baik.
double a = 100.;
Ini akan dikompilasi dengan baik.
double a = .0;
Ini akan dikompilasi dengan baik.
float a = 100.0f; 
Ini akan dikompilasi dengan baik.
float a = 100.0; 
Akan ada kesalahan kompilasi: variabelnya adalah float, tetapi literalnya adalah double.

Omong-omong, Anda dapat secara eksplisit mengonversi literal integer menjadi float atau literal ganda hanya dengan ). Contoh: appending the suffix 'F' (for float) or D (for double)

Kode Keterangan
double a = 100D; 
Ini akan dikompilasi dengan baik.
float a = 100F; 
Ini akan dikompilasi dengan baik.
int a = 300D; 
Akan ada kesalahan kompilasi: variabelnya adalah int, tetapi literalnya adalah double.

Literal floating-point dapat menggunakan notasi ilmiah : selain bagian angka yang ditandatangani, Anda juga dapat menentukan kekuatan sepuluh. Contoh:

Harfiah Notasi matematika Nilai akhir
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. String literal

Anda juga dapat menentukan seluruh baris teks dalam kode Anda. Untuk memberi tahu kompiler agar memperlakukan string sebagai data (literal) dan bukan sebagai bagian dari kode, seluruh string diapit oleh tanda kutip ganda di kedua sisi.

Jika satu baris kode memiliki beberapa tanda kutip ganda, maka mereka dipisahkan menjadi pasangan. Tanda kutip ganda pertama menunjukkan awal literal. Yang berikutnya menunjukkan akhir literal. Yang berikutnya setelah itu sekali lagi menandai awal dari literal baru. Dan selanjutnya menandai akhir dari literal kedua. Dan seterusnya.

Setiap literal tersebut adalah String.

Contoh

Kode Penjelasan
"+" + "+" + "+" + "+" + "+"
Ada 5 literal dalam satu baris. Masing-masing terdiri dari satu  +karakter
""
Literal ini adalah string kosong. Sebuah string tanpa karakter.
"2+3" + "-5"
Ada dua literal di sini. Hasilnya adalah string ' 2+3-5', bukan angka
"return" + ";"
Ada juga dua literal di sini. Tidak ada pernyataan pengembalian di sini.

Jika literal string terlalu panjang, string dapat dipecah menjadi beberapa baris dan direkatkan dengan 'operator plus':

Kode Penjelasan
String s = "I hold it true, whate'er befall, "
         + "I feel it when I sorrow most; "
         + "'Tis better to have loved and lost "
         + "Than never to have loved at all.";
Jika Anda menampilkan baris ini ke layar, maka semua teks akan ditampilkan dalam satu baris!


4. Literal karakter

Anda tidak hanya dapat menentukan literal string dalam kode Anda, tetapi juga literal yang terdiri dari karakter individual. Perhatikan bahwa kita tidak berbicara tentang string yang terdiri dari satu karakter, melainkan tentang literal yang bertipe char.

Tidak seperti string, literal karakter dikelilingi oleh tanda kutip tunggal . Di dalam tanda kutip tunggal harus ada karakter dan hanya satu karakter. Anda tidak dapat menggunakan tanda kutip tunggal kosong.

Contoh:

Kode Penjelasan
'A'
Sebuah literal yang tipenya adalah char. Ini berisi huruf Latin 'A'.
'@' 
Sebuah literal yang tipenya adalah char. Ini berisi simbol '@'
'' 
Sebuah literal yang tipenya adalah char. Ini berisi karakter Jepang. Dan ini juga mungkin.
'\u1f3a'
Sebuah literal yang tipenya adalah char. Ini berisi karakter Unicode yang ditentukan oleh nomornya.

Contoh terakhir menetapkan karakter Unicode menggunakan notasi khusus: pertama kita memiliki awalan \u, diikuti oleh 4 karakter heksadesimal. Pelajaran selanjutnya mencakup informasi terperinci tentang ini.