1. Integer literals

Lan saiki kanggo topik menarik anyar - literals. Data sing ditulis langsung ing kode program diarani literal . Kita ora ngomong babagan data lawas, nanging nilai jinis lan Stringjinis primitif.

Contone, umpamane sampeyan duwe kode ing ngisor iki:

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

Literal ing kode iki yaiku nomer , nomer lan string ' ' .510Sum =

Ing Jawa kabeh, kalebu aksara, duwe jinis. Kanthi gawan, kabeh literal integer (wilangan wutuh) ing kode yaiku ints. Jinis int yaiku jinis integer Jawa standar.

Apa maneh, yen sampeyan arep nemtokake integer literal menyang variabel byte utawa variabel cendhak ing kode sampeyan, ora bakal ana masalah. Sampeyan mung kudu mesthekake yen nilai literal dumunung ing sawetara nilai sing bisa disimpen ing jinis variabel.

Compiler Java cukup pinter kanggo mangerteni yen bytevariabel bisa diwenehi integer literal 100 tanpa nggawe masalah.

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.

Sampeyan uga bisa nulis longliteral ing kode sampeyan. Kanggo nindakake iki, tambahake 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 sok dong mirsani carane angel maca nomer akeh 10 utawa luwih digit? Sampeyan ora bisa langsung ngerti apa kode kasebut 3 milyar utawa 30 milyar. Kanggo nggawe kode luwih bisa diwaca (lan iki penting!), Jawa ngidini underscores dilebokake menyang literal numerik (padha ora mengaruhi Nilai saka nomer).

Conto ing ndhuwur bisa ditulis maneh kanthi garis ngisor supaya luwih cetha:

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.

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



2. Aksara angka nyata

Ing kode sampeyan, sampeyan bisa nemtokake ora mung integer, nanging uga floating-point literals (nomer nyata).

Bener, aturan kasebut cukup prasaja: yen nomer ing kode kasebut nduweni titik desimal, mula angka kasebut minangka literal floating-point. Lan ora mung literal, nanging doubleliteral.

Sampeyan bisa nggawe float literal, nanging sampeyan kudu nglebokake huruf 'F' (utawa 'f') ing mburi nomer kanggo nindakake iku .

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.

Miturut cara, sampeyan bisa kanthi jelas ngowahi literal integer dadi float utawa literal ganda kanthi mung). Tuladha: appending the suffix 'F' (for float) or D (for double)

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

Literal floating-point bisa nggunakake notasi ilmiah : saliyane bagean nomer sing ditandatangani, sampeyan uga bisa nemtokake kekuwatan sepuluh. Tuladha:

Literal Notasi matematika Nilai pungkasan
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. Aksara swara

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

Yen baris siji kode duwe sawetara kuotasi pindho, banjur dipérang dadi pasangan. Tanda petik dobel pisanan nuduhake wiwitan literal. Sabanjure nuduhake pungkasan literal. Sabanjure sawise iku maneh nandhani wiwitan literal anyar. Lan sabanjure tandha pungkasan saka literal kapindho. Lan sateruse.

Saben aksara kuwi a 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 pirang-pirang garis lan ditempelake 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!


4. Aksara aksara

Sampeyan bisa nemtokake ora mung string literals ing kode, nanging uga literals dumadi saka karakter individu. Elinga yen kita ora ngomong babagan string sing dumadi saka siji karakter, nanging babagan literal sing jinise char.

Ora kaya senar, karakter literal diubengi kutipan tunggal . Ing jero kuotasi siji kudu ana karakter lan mung siji karakter. Sampeyan ora bisa nggunakake kuotasi siji 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. Pawulangan sabanjure kalebu informasi rinci babagan iki.