"Amigo, ik benijd je. Nieuwe dingen leren is zo geweldig! En vandaag wacht je een nieuw en interessant onderwerp - letterlijke teksten."

"Blijkbaar zou ik moeten zeggen dat ik de gelukkigste robo-student ter wereld ben, Rishi. Nou, ik ben klaar om de nieuwe kennis op te doen!"

"Laten we er dan meteen mee aan de slag gaan. Literals zijn specifieke gegevens die rechtstreeks in de code van een programma zijn geschreven. We hebben het niet over zomaar gegevens. We hebben het alleen over primitieve typen en strings.

Stel dat je deze code hebt:

Code Letterlijke tekens
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

"De letterlijke waarden in deze code zijn het getal 5 , het getal 10 en de string ' Sum = '.

Integer letterlijke woorden

"In Java heeft alles, inclusief literals, een type. Alle letterlijke gehele getallen (integers) in code zijn ints . Het int-type is het standaard Java integer-type."

"Ik ken dit type. Ik heb het gebruikt."

"Herinner je je naast int nog andere typen gehele getallen? Sommige die minder ruimte in het geheugen innemen?"

"Natuurlijk! Byte en kort."

"Dat zijn degenen. Dus als je in je code besluit een geheel getal letterlijk toe te wijzen aan een variabele van het type byte of short, zullen er geen problemen zijn. Het belangrijkste is dat de letterlijke waarde binnen het bereik van waarden ligt dat de type variabele kan worden opgeslagen. De Java-compiler is slim genoeg om te begrijpen dat aan een bytevariabele het gehele getal letterlijk 100 kan worden toegewezen.

Voorbeelden:

Code Beschrijving
int a = 300;
Dit zal prima compileren.
byte a = 100; 
Dit zal prima compileren.
byte a = 300; 
Er treedt een compilatiefout op, omdat de maximale bytewaarde 127 is.

"Hoe zit het met het lange type?"

"We kunnen ook letterlijke tekens van dit type in onze code schrijven. Voeg hiervoor de Latijnse letter 'L' of 'l' toe aan het einde van het gehele getal.

Voorbeelden:

Code Beschrijving
long a = 3000000000L; 
Dit zal prima compileren.
long a = 3000000000; 
Compilatiefout: 3 miljard is te groot voor een int letterlijk.
int a = 3000000000L; 
Compilatiefout: de letterlijke waarde is een lange, maar de variabele is een int. Bovendien is 3 miljard meer dan de maximale int.

"Is het je opgevallen hoe moeilijk het is om grote getallen van 10 of meer cijfers te lezen?

"Ja, als je je robovision niet hebt ingeschakeld, zal het niet meteen duidelijk zijn of we het hebben over 3 miljard of 30."

"Om de code leesbaarder te maken (en dit is belangrijk!), staat Java toe dat onderstrepingstekens worden ingevoegd in numerieke literals (ze hebben geen invloed op de waarde van het getal).

"Bovenstaand voorbeeld kan worden herschreven met onderstrepingstekens om het wat duidelijker te maken:

Code Beschrijving
long a = 3_000_000_000L; 
Dit zal prima compileren.
long a = 3_000_000_000; 
Compilatiefout: 3 miljard is te groot voor een int letterlijk.
int a = 3_000_000_000L; 
Compilatiefout: de letterlijke waarde is een lange, maar de variabele is een int. Bovendien is 3 miljard meer dan de maximale int.

"Dit is veel handiger om te lezen, hoewel een komma in plaats van een onderstrepingsteken bekender zou zijn!"

"Maar we kunnen geen komma's gebruiken in numerieke literals omdat ze al voor een ander doel worden gebruikt, bijvoorbeeld om argumenten van elkaar te scheiden bij het aanroepen van een methode.

Echte letterlijke getallen

"Je hebt waarschijnlijk al geraden dat je in je code niet alleen gehele getallen kunt specificeren, maar ook letterlijke drijvende komma's (reële getallen)."

"Zowel dubbels als drijvers?"

"Ja. Eigenlijk is de regel vrij eenvoudig: als een getal in de code een decimaalteken bevat, dan is het getal een letterlijke drijvende komma. En niet zomaar een letterlijke, maar dubbele letterlijke waarde . moet de letter 'F' (of 'f') aan het einde van het nummer plaatsen .

Voorbeelden:

Code Beschrijving
double a = 100.0; 
Dit zal prima compileren.
double a = 100.;
Dit zal prima compileren.
double a = .0;
Dit zal prima compileren.
float a = 100.0f; 
Dit zal prima compileren.
float a = 100.0; 
Er zal een compilatiefout optreden: de variabele is een float, maar de letterlijke waarde is een double.

"Trouwens, je kunt een letterlijk geheel getal expliciet omzetten in een float of double literal door simpelweg het achtervoegsel 'F' (voor float ) of D (voor double ) toe te voegen. Voorbeelden:

Code Beschrijving
double a = 100D; 
Dit zal prima compileren.
float a = 100F; 
Dit zal prima compileren.
int a = 300D; 
Er zal een compilatiefout optreden: de variabele is een int, maar de letterlijke waarde is een double .

"Floating-point literals kunnen wetenschappelijke notatie gebruiken : naast het ondertekende deel van het getal kunt u ook een macht van tien specificeren. Voorbeeld:

Letterlijk Wiskundige notatie Definitieve waarde
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

Letterlijke tekenreeksen

"Je kunt ook hele regels tekst in je code specificeren. Om de compiler te vertellen dat hij een string moet behandelen als data (een letterlijke waarde) en niet als onderdeel van de code, wordt de hele string aan beide kanten tussen dubbele aanhalingstekens geplaatst.

"Als een enkele coderegel meerdere dubbele aanhalingstekens heeft, worden ze in paren gesplitst. Het eerste dubbele aanhalingsteken geeft het begin van een letterlijke zin aan. De volgende geeft het einde van de letterlijke zin aan. begin van een nieuwe letterlijke zin, en de volgende markeert het einde van de tweede letterlijke, enzovoort.

"Elk van deze letterlijke waarden is een String .

Voorbeelden

Code Uitleg
"+"+"+"+"+"+"+"+"+"
Er zijn 5 literals in een lijn. Elk van hen bestaat uit een enkel '+'-teken
""
Deze letterlijke waarde is een lege tekenreeks. Een tekenreeks zonder tekens.
"2+3"+"-5"
Er zijn hier twee letterlijke woorden. Het resultaat is de tekenreeks '2+3-5', geen getal
"return"+";"
Er zijn ook twee letterlijke woorden hier. Er is hier geen retourverklaring.

"Als een letterlijke tekenreeks te lang is, kan deze worden opgesplitst in meerdere regels en aan elkaar worden gelijmd met de 'plus-operator':

Code Uitleg
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.";
Als u deze regel naar het scherm uitvoert, wordt alle tekst op één regel weergegeven!

Letterlijke tekens

"Wat als ik een letterlijke waarde nodig heb die een enkel teken is in plaats van een string? Moet ik een string maken die uit een enkel teken bestaat?"

"Nee, dan heb je een letterwoord nodig waarvan het type is char. Kun je raden hoe het begin en het einde van zo'n letterwoord wordt aangeduid?"

"Enkele aanhalingstekens?"

"Ja, en binnen de enkele aanhalingstekens moet er een teken staan ​​en slechts één teken. U kunt geen lege enkele aanhalingstekens gebruiken.

Voorbeelden:

Code Uitleg
'A'
Een letterlijke letter waarvan het type char is. Het bevat de Latijnse letter 'A'.
'@' 
Een letterlijke letter waarvan het type char is. Het bevat het '@'-symbool
'' 
Een letterlijke letter waarvan het type char is. Het bevat een Japans karakter. En ook dit is mogelijk.
'\u1f3a'
Een letterlijke letter waarvan het type char is. Het bevat een Unicode-teken gespecificeerd door zijn nummer.

"Het laatste voorbeeld wijst een Unicode-teken toe met een speciale notatie: eerst hebben we het voorvoegsel \u, gevolgd door 4 hexadecimale tekens. In de volgende lessen leer je hier meer over."