"Amigo, aku iri karo sampeyan. Sinau bab anyar pancen apik banget! Lan dina iki topik anyar lan menarik nunggu sampeyan - literal."

"Jebule aku kudu ngomong yen aku iki murid robo sing paling seneng ing planet iki, Rishi. Ya, aku wis siyap kanggo entuk kawruh anyar!"

"Ayo langsung langsung. Literal minangka data spesifik sing ditulis langsung ing kode program. Kita ora ngomong babagan data apa wae. Kita mung ngomong babagan jinis primitif lan Strings.

Contone, umpamane sampeyan duwe kode iki:

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

"Ing literal ing kode iki nomer 5 , nomer 10 lan string ' Sum = '.

Integer literals

"Ing Jawa, kabeh, kalebu literal, duwe jinis. Kabeh integer literals (integers) ing kode ints . Jinis int iku jinis integer standar Jawa."

"Aku ngerti jinis iki. Aku wis digunakake."

"Apa sampeyan ngelingi jinis integer liyane kajaba int? Sawetara sing njupuk kurang spasi ing memori?"

"Mesthi! Byte lan cendhak."

"Iki. Dadi, yen ing kode sampeyan mutusake kanggo nemtokake integer literal menyang variabel jinis byte utawa cendhak, ora bakal ana masalah. Sing utama yaiku nilai literal kasebut ana ing kisaran nilai sing Tipe variabel bisa disimpen. Compiler Java cukup pinter kanggo mangerteni yen variabel byte bisa diwenehi integer literal 100.

Tuladha:

Kode Katrangan
int a = 300;
Iki bakal ngumpulake mung apik.
byte a = 100; 
Iki bakal ngumpulake mung apik.
byte a = 300; 
Bakal ana kesalahan kompilasi, amarga nilai byte maksimal yaiku 127.

"Apa babagan jinis dawa ?"

"Kita uga bisa nulis literal saka jinis iki ing kode kita. Kanggo nindakake iki, nambah huruf Latin 'L' utawa 'l' ing mburi integer.

Tuladha:

Kode Katrangan
long a = 3000000000L; 
Iki bakal ngumpulake mung apik.
long a = 3000000000; 
Kesalahan kompilasi: 3 milyar gedhe banget kanggo int literal.
int a = 3000000000L; 
Kesalahan kompilasi: literal dawa, nanging variabel minangka int. Kajaba iku, 3 milyar luwih saka int maksimum.

"Apa sampeyan ngerti carane angel maca nomer akeh 10 digit utawa luwih?

"Ya, yen sampeyan ora ngaktifake robovision, mula ora bakal jelas yen kita ngomong babagan 3 milyar utawa 30."

"Kanggo nggawe kode luwih bisa diwaca (lan iki penting!), Jawa ngidini underscores dilebokake menyang literal numerik (ora mengaruhi nilai angka).

"Conto ing ndhuwur bisa ditulis maneh nganggo garis ngisor supaya luwih jelas:

Kode Katrangan
long a = 3_000_000_000L; 
Iki bakal ngumpulake mung apik.
long a = 3_000_000_000; 
Kesalahan kompilasi: 3 milyar gedhe banget kanggo int literal.
int a = 3_000_000_000L; 
Kesalahan kompilasi: literal dawa, nanging variabel minangka int. Kajaba iku, 3 milyar luwih saka int maksimum.

"Iki luwih trep kanggo maca, sanajan koma tinimbang garis ngisor bakal luwih akrab!"

"Nanging kita ora bisa nggunakake koma ing literal numerik amarga wis digunakake kanggo tujuan liyane. Contone, kanggo misahake bantahan saka saben liyane nalika nelpon cara.

Literal nomer nyata

"Sampeyan mbokmenawa wis ngira yen ing kode sampeyan bisa nemtokake ora mung integer, nanging uga literal titik ngambang (nomer nyata)."

"Loro ganda lan ngambang?"

"Ya. Bener, aturane cukup prasaja: yen nomer ing kode kasebut nduweni titik desimal, banjur angka kasebut minangka titik ngambang literal. Lan ora mung literal, nanging literal ganda. Kanggo nggawe literal float , sampeyan kudu dilebokake huruf 'F' (utawa 'f') ing mburi nomer .

Tuladha:

Kode Katrangan
double a = 100.0; 
Iki bakal ngumpulake mung apik.
double a = 100.;
Iki bakal ngumpulake mung apik.
double a = .0;
Iki bakal ngumpulake mung apik.
float a = 100.0f; 
Iki bakal ngumpulake mung apik.
float a = 100.0; 
Bakal ana kesalahan kompilasi: variabel kasebut minangka float, nanging literal yaiku ganda.

"Oalah, sampeyan bisa kanthi jelas ngowahi literal integer dadi float utawa literal ganda kanthi nambahi suffix 'F' (kanggo float ) utawa D (kanggo dobel ). Conto:

Kode Katrangan
double a = 100D; 
Iki bakal ngumpulake mung apik.
float a = 100F; 
Iki bakal ngumpulake mung apik.
int a = 300D; 
Bakal ana kesalahan kompilasi: variabel kasebut minangka int, nanging literal yaiku ganda .

"Floating-point literals bisa nggunakake notasi ilmiah : saliyane bagean sing ditandatangani saka nomer, sampeyan uga bisa nemtokake daya sepuluh. Conto:

Literal Notasi matematika Nilai pungkasan
1.23 E 2 1.23*10 2 123.0
1.23 E 3 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 literals

"Sampeyan uga bisa nemtokake kabeh baris teks ing kode Panjenengan. Supaya kanggo ngandhani compiler kanggo nambani senar minangka data (aksara) lan ora minangka bagéan saka kode, kabeh senar diubengi dening kuotasi pindho ing loro-lorone.

"Yen baris siji kode duwe sawetara kuotasi dobel, banjur dipérang dadi pasangan. Tanda kutip dobel pisanan nuduhake wiwitan literal. Sing sabanjure nuduhake pungkasan literal. purwakanthi aksara anyar, lan sabanjure minangka tandha pungkasaning aksara kapindho, lan sateruse.

"Saben literal kasebut minangka String .

Tuladha

Kode Panjelasan
"+"+"+"+"+"+"+"+"+"
Ana 5 aksara ing baris. Saben wong kasusun saka siji karakter '+'
""
Literal iki minangka string kosong. String tanpa karakter.
"2+3"+"-5"
Ana rong literal ing kene. Asil bakal dadi string '2 + 3-5', dudu nomer
"return"+";"
Ana uga rong literal ing kene. Ora ana pernyataan bali ing kene.

"Yen string literal dawa banget, bisa dipérang dadi sawetara garis lan disambungake karo 'operator plus':

Kode Panjelasan
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.";
Yen sampeyan nampilake baris iki menyang layar, kabeh teks bakal ditampilake ing baris siji!

Aksara aksara

"Apa yen aku butuh literal sing karakter siji tinimbang senar? Apa aku kudu nggawe senar sing kasusun saka siji karakter?"

"Ora, yen ngono sampeyan butuh literal sing jinise char. Apa sampeyan bisa ngira kepiye wiwitan lan pungkasan literal kasebut ditetepake?"

"Kutipan tunggal?"

"Ya, lan ing jero kuotasi tunggal kudu ana karakter lan mung siji karakter. Sampeyan ora bisa nggunakake kuotasi tunggal kosong.

Tuladha:

Kode Panjelasan
'A'
A literal kang jinis char. Isine huruf Latin 'A'.
'@' 
A literal kang jinis char. Isine simbol '@'
'' 
A literal kang jinis char. Isine karakter Jepang. Lan iki uga bisa.
'\u1f3a'
A literal kang jinis char. Isine karakter Unicode sing ditemtokake dening nomer kasebut.

"Conto pungkasan menehi karakter Unicode nggunakake notasi khusus: pisanan kita duwe awalan \u, ngiring dening 4 karakter heksadesimal. Sampeyan bakal sinau liyane babagan iki ing pawulangan sabanjuré."