"Amigo, aku iri padamu. Mempelajari hal-hal baru sangat luar biasa! Dan hari ini topik baru dan menarik menantimu - literal."

"Rupanya aku harus mengatakan bahwa aku adalah siswa robo paling bahagia di planet ini, Rishi. Yah, aku siap menyerap pengetahuan baru!"

"Mari kita langsung ke sana. Literal adalah data spesifik yang ditulis langsung dalam kode program. Kita tidak berbicara tentang sembarang data. Kita hanya berbicara tentang tipe dan String primitif.

Misalnya, Anda memiliki kode ini:

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 10 dan string ' Sum = '.

Literal bilangan bulat

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

"Aku tahu tipe ini. Aku sudah menggunakannya."

"Apakah Anda ingat tipe integer lain selain int? Beberapa yang menggunakan lebih sedikit ruang di memori?"

"Tentu saja! Byte dan pendek."

"Itulah. Jadi, jika dalam kode Anda Anda memutuskan untuk menetapkan literal integer ke variabel tipe byte atau pendek, tidak akan ada masalah. Hal utama adalah bahwa nilai literal terletak dalam kisaran nilai yang tipe variabel dapat menyimpan Kompiler Java cukup pintar untuk memahami bahwa variabel byte dapat diberi integer literal 100.

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.

"Bagaimana dengan tipe panjang ?"

"Kita juga bisa menulis literal jenis ini dalam kode kita. 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?

"Ya, jika Anda tidak mengaktifkan robovision Anda, maka tidak akan segera jelas apakah kita berbicara tentang 3 miliar atau 30."

"Untuk membuat kode lebih mudah dibaca (dan ini penting!), Java memungkinkan garis bawah dimasukkan ke dalam literal numerik (tidak memengaruhi nilai angka).

"Contoh di atas dapat ditulis ulang dengan garis bawah untuk membuatnya 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.

"Ini jauh lebih nyaman untuk dibaca, meskipun koma dan bukan garis bawah akan lebih familiar!"

"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.

Literal bilangan real

"Anda mungkin sudah menebak bahwa dalam kode Anda, Anda tidak hanya dapat menentukan bilangan bulat, tetapi juga literal floating point (bilangan nyata)."

"Double dan float?"

"Ya. Sebenarnya, aturannya cukup sederhana: jika angka dalam kode memiliki titik desimal di dalamnya, maka angka tersebut adalah literal floating point. Dan bukan sembarang literal, tetapi literal ganda. Untuk membuat literal float , Anda perlu meletakkan huruf 'F' (atau 'f') di akhir angka .

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.

"Ngomong-ngomong, Anda dapat secara eksplisit mengubah integer literal menjadi float atau double literal hanya dengan menambahkan akhiran 'F' (untuk float ) atau D (untuk double ). Contoh:

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 titik-mengambang 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*10 2 123.0
1.23E3 _ _ 1,23*103 1230.0
1,23 E -6 1,23*10 -6 0,00000123
1 E 6 1,0 *10 6 1000000.0
1 E -10 1,0*10 -10 0,0000000001

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 dari 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 sebuah 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 string literal terlalu panjang, itu 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!

Literal karakter

"Bagaimana jika saya membutuhkan literal yang merupakan karakter tunggal dan bukan string? Haruskah saya membuat string yang terdiri dari satu karakter?"

"Tidak, dalam hal ini Anda memerlukan literal yang tipenya adalah char. Bisakah Anda menebak bagaimana awal dan akhir dari literal tersebut ditentukan?"

"Kutipan tunggal?"

"Ya, dan di dalam tanda kutip tunggal harus ada karakter dan hanya satu karakter. Anda tidak dapat menggunakan tanda kutip tunggal yang 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. Anda akan mempelajari lebih lanjut tentang ini di pelajaran berikutnya."