"Amigo, jag avundas dig. Att lära sig nya saker är så underbart! Och idag väntar ett nytt och intressant ämne på dig - bokstavliga ord."

"Jag borde tydligen säga att jag är den lyckligaste robostudenten på planeten, Rishi. Nåväl, jag är redo att insupa den nya kunskapen!"

"Låt oss komma till det direkt då. Literals är specifika data som skrivs direkt i ett programs kod. Vi pratar inte om vilken data som helst. Vi pratar bara om primitiva typer och strängar.

Anta till exempel att du har den här koden:

Koda Bokstäver
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

"Literalerna i den här koden är siffran 5 , siffran 10 och strängen ' Sum = '.

Heltals bokstaver

"I Java har allt, inklusive literaler, en typ. Alla heltalsliteraler (heltal) i koden är ints . Int-typen är standard Java-heltalstypen."

"Jag känner till den här typen. Jag har använt den."

"Kommer du ihåg andra heltalstyper förutom int? Vissa som tar mindre plats i minnet?"

"Självklart! Byte och kort."

"Det är de. Så om du i din kod bestämmer dig för att tilldela en heltalsliteral till en variabel av typen byte eller short, kommer det inte att vara några problem. Huvudsaken är att det bokstavliga värdet ligger inom värdeintervallet som variabelns typ kan lagra. Java-kompilatorn är smart nog att förstå att en bytevariabel kan tilldelas heltalsliteralen 100.

Exempel:

Koda Beskrivning
int a = 300;
Detta kommer att kompilera bra.
byte a = 100; 
Detta kommer att kompilera bra.
byte a = 300; 
Det kommer att uppstå ett kompileringsfel eftersom det maximala bytevärdet är 127.

"Vad sägs om den långa typen?"

"Vi kan också skriva bokstaver av denna typ i vår kod. För att göra detta, lägg till den latinska bokstaven 'L' eller 'l' i slutet av heltal.

Exempel:

Koda Beskrivning
long a = 3000000000L; 
Detta kommer att kompilera bra.
long a = 3000000000; 
Kompileringsfel: 3 miljarder är för stort för en int literal.
int a = 3000000000L; 
Kompileringsfel: bokstaven är en lång, men variabeln är en int. Dessutom är 3 miljarder mer än den maximala int.

"Har du lagt märke till hur svårt det är att läsa ett stort antal av 10 eller fler siffror?

"Ja, om du inte har din robovision aktiverad, kommer det inte att vara direkt klart om vi pratar om 3 miljarder eller 30."

"För att göra koden mer läsbar (och detta är viktigt!) tillåter Java att understreck infogas i numeriska bokstaver (de påverkar inte värdet på siffran).

"Exemplet ovan kan skrivas om med understreck för att göra det lite tydligare:

Koda Beskrivning
long a = 3_000_000_000L; 
Detta kommer att kompilera bra.
long a = 3_000_000_000; 
Kompileringsfel: 3 miljarder är för stort för en int literal.
int a = 3_000_000_000L; 
Kompileringsfel: bokstaven är en lång, men variabeln är en int. Dessutom är 3 miljarder mer än den maximala int.

"Det här är mycket bekvämare att läsa, även om ett kommatecken istället för ett understreck skulle vara mer bekant!"

"Men vi kan inte använda kommatecken i numeriska bokstaver eftersom de redan används för ett annat syfte. Till exempel för att skilja argument från varandra när man anropar en metod.

Verkliga antal bokstaver

"Du har antagligen redan gissat att du i din kod kan ange inte bara heltal utan även flyttalsliteraler (reella tal)."

"Både dubblar och flyter?"

"Ja. Egentligen är regeln ganska enkel: om ett tal i koden har en decimalkomma i sig, så är talet en flyttal bokstavlig. Och inte vilken bokstavlig bokstav som helst, utan dubbel bokstavlig. För att skapa en flytande bokstav , du måste sätta bokstaven "F" (eller "f") i slutet av siffran .

Exempel:

Koda Beskrivning
double a = 100.0; 
Detta kommer att kompilera bra.
double a = 100.;
Detta kommer att kompilera bra.
double a = .0;
Detta kommer att kompilera bra.
float a = 100.0f; 
Detta kommer att kompilera bra.
float a = 100.0; 
Det kommer att uppstå ett kompileringsfel: variabeln är en float, men den bokstavliga är en dubbel.

"Förresten, du kan uttryckligen konvertera en heltalsliteral till en float eller dubbelliteral genom att helt enkelt lägga till suffixet 'F' (för float ) eller D (för dubbel ). Exempel:

Koda Beskrivning
double a = 100D; 
Detta kommer att kompilera bra.
float a = 100F; 
Detta kommer att kompilera bra.
int a = 300D; 
Det kommer att uppstå ett kompileringsfel: variabeln är en int, men den bokstavliga är en dubbel .

"Literaler med flyttal kan använda vetenskaplig notation : förutom den undertecknade delen av talet kan du också ange tiopotens. Exempel:

Bokstavlig Matematisk notation Slutvärde
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

Sträng bokstaver

"Du kan också ange hela textrader i din kod. För att tala om för kompilatorn att behandla en sträng som data (en bokstavlig) och inte som en del av koden, är hela strängen omgiven av dubbla citattecken på båda sidor.

"Om en enskild kodrad har flera dubbla citattecken, delas de upp i par. Det första dubbla citattecken indikerar början på en bokstavlig. Nästa anger slutet av den bokstavliga. Nästa efter det markerar återigen början på en ny bokstavlig. Och nästa markerar slutet på den andra bokstavligen. Och så vidare.

"Varje sådan bokstavlig är en sträng .

Exempel

Koda Förklaring
"+"+"+"+"+"+"+"+"+"
Det finns 5 bokstaver på en rad. Var och en av dem består av ett enda "+"-tecken
""
Denna bokstavliga är en tom sträng. En sträng utan tecken.
"2+3"+"-5"
Det finns två bokstavliga ord här. Resultatet blir strängen '2+3-5', inte ett nummer
"return"+";"
Det finns också två bokstavliga ord här. Det finns inget returuttalande här.

"Om en bokstavssträng är för lång kan den delas upp i flera rader och limmas ihop med 'plusoperatorn':

Koda Förklaring
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.";
Om du matar ut den här raden på skärmen, kommer all text att visas på en enda rad!

Karaktärs bokstavliga ord

"Vad händer om jag behöver en bokstavlig bokstav som är ett enda tecken snarare än en sträng? Ska jag skapa en sträng som består av ett enda tecken?"

"Nej, i så fall behöver du en bokstavlig vars typ är char. Kan du gissa hur början och slutet av en sådan bokstavlig betecknas?"

"Enstaka citat?"

"Ja, och inuti de enskilda citattecken måste det finnas ett tecken och bara ett tecken. Du kan inte använda tomma enstaka citattecken.

Exempel:

Koda Förklaring
'A'
En bokstavlig vars typ är röding. Den innehåller den latinska bokstaven "A".
'@' 
En bokstavlig vars typ är röding. Den innehåller "@"-symbolen
'' 
En bokstavlig vars typ är röding. Den innehåller en japansk karaktär. Och detta är också möjligt.
'\u1f3a'
En bokstavlig vars typ är röding. Den innehåller ett Unicode-tecken som anges av dess nummer.

"Det sista exemplet tilldelar ett Unicode-tecken med en speciell notation: först har vi prefixet \uföljt av 4 hexadecimala tecken. Du kommer att lära dig mer om detta i nästa lektion."