1. Heltals bokstaver

Och nu till ett nytt intressant ämne - bokstavliga ord. Data som skrivs direkt i programkoden kallas för bokstaver . Vi pratar inte om några gamla data, utan om primitiva typers värden och typen String.

Anta till exempel att du har följande kod:

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

Bokstaven i denna kod är siffran , siffran och strängen ' ' .510Sum =

I Java har allt, inklusive bokstavliga ord, en typ. Som standard är alla heltalsliteraler (heltal) i koden ints. Int-typen är standardtypen för Java-heltal.

Vad mer är, om du bestämmer dig för att tilldela en heltalsliteral till en bytevariabel eller en kort variabel i din kod, kommer det inte att vara några problem. Du behöver bara se till att det bokstavliga värdet ligger inom det värdeintervall som variabelns typ kan lagra.

Java-kompilatorn är smart nog att förstå att en bytevariabel kan tilldelas heltalsliteralen 100 utan att skapa problem.

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.

Du kan också skriva longbokstavliga ord i din 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 märkt hur svårt det är att läsa ett stort antal med 10 eller fler siffror? Du kan inte omedelbart avgöra om koden säger 3 miljarder eller 30 miljarder. 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.

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 separera argument från varandra vid anrop av en metod.



2. Verkliga tal bokstaver

I din kod kan du ange inte bara heltal, utan även flyttalsliteral (reella tal).

Egentligen är regeln ganska enkel: om ett tal i koden har en decimalkomma i sig, så är talet en flyttal. Och inte vilken bokstavlig, utan en doublebokstavlig.

Du kan skapa en flytande bokstav, men du måste sätta bokstaven 'F' (eller 'f') i slutet av siffran för att göra det .

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 ) . Exempel: appending the suffix 'F' (for float) or D (for double)

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

Flyttalsliteral kan använda vetenskaplig notation : förutom den undertecknade delen av talet kan du också ange en tiopotens. Exempel:

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

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 enda kodrad har flera citattecken, delas de upp i par. Det första dubbla citattecknet anger början på en bokstavlig. Nästa anger slutet på bokstaven. Nästa efter det markerar återigen början på en ny bokstavlig. Och nästa markerar slutet på den andra bokstavliga. Och så vidare.

Varje sådan bokstavlig är en String.

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!


4. Karaktärs bokstavliga ord

Du kan ange inte bara strängliteraler i din kod, utan även literaler som består av enskilda tecken. Observera att vi inte pratar om en sträng som består av ett enda tecken, utan snarare om bokstaver vars typ är char.

Till skillnad från en sträng är en bokstavlig bokstav omgiven av enstaka citattecken . 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. Nästa lektioner innehåller detaljerad information om detta.