1. Letterali interi

E ora per un nuovo argomento interessante: letterali. I dati scritti direttamente nel codice del programma sono chiamati letterali . Non stiamo parlando di dati vecchi, ma dei valori dei tipi primitivi e del Stringtipo.

Ad esempio, supponiamo di avere il seguente codice:

Codice Letterali
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

I letterali in questo codice sono il numero 5, il numero 10e la stringa ' Sum = '.

In Java, tutto, inclusi i letterali, ha un tipo. Per impostazione predefinita, tutti i letterali interi (numeri interi) nel codice sono ints. Il tipo int è il tipo intero Java standard.

Inoltre, se decidi di assegnare un valore letterale intero a una variabile byte oa una variabile breve nel tuo codice, non ci saranno problemi. Devi solo assicurarti che il valore letterale rientri nell'intervallo di valori che il tipo di variabile può memorizzare.

Il compilatore Java è abbastanza intelligente da capire che a una bytevariabile può essere assegnato il valore letterale intero 100 senza creare problemi.

Esempi:

Codice Descrizione
int a = 300;
Questo verrà compilato bene.
byte a = 100; 
Questo verrà compilato bene.
byte a = 300; 
Ci sarà un errore di compilazione, perché il valore massimo di byte è 127.

Puoi anche scrivere longletterali nel tuo codice. Per fare ciò, aggiungi la lettera latina 'L' o 'l' alla fine del numero intero.

Esempi:

Codice Descrizione
long a = 3000000000L; 
Questo verrà compilato bene.
long a = 3000000000; 
Errore di compilazione: 3 miliardi è troppo grande per un int letterale.
int a = 3000000000L; 
Errore di compilazione: il letterale è lungo, ma la variabile è un int. Inoltre, 3 miliardi è più del massimo int.

Hai notato quanto sia difficile leggere grandi numeri di 10 o più cifre? Non puoi dire immediatamente se il codice dice 3 miliardi o 30 miliardi. Per rendere il codice più leggibile (e questo è importante!), Java consente di inserire caratteri di sottolineatura nei letterali numerici (non influiscono sul valore del numero).

L'esempio sopra può essere riscritto con caratteri di sottolineatura per renderlo un po' più chiaro:

Codice Descrizione
long a = 3_000_000_000L; 
Questo verrà compilato bene.
long a = 3_000_000_000; 
Errore di compilazione: 3 miliardi è troppo grande per un int letterale.
int a = 3_000_000_000L; 
Errore di compilazione: il letterale è lungo, ma la variabile è un int. Inoltre, 3 miliardi è più del massimo int.

Ma non possiamo usare le virgole nei letterali numerici perché sono già usate per un altro scopo. Ad esempio, per separare gli argomenti l'uno dall'altro quando si chiama un metodo.



2. Numeri reali letterali

Nel tuo codice, puoi specificare non solo numeri interi, ma anche valori letterali in virgola mobile (numeri reali).

In realtà, la regola è piuttosto semplice: se un numero nel codice contiene un punto decimale, allora il numero è un letterale a virgola mobile. E non solo un letterale qualsiasi, ma un doubleletterale.

Puoi creare un letterale float, ma per farlo devi inserire la lettera 'F' (o 'f') alla fine del numero .

Esempi:

Codice Descrizione
double a = 100.0; 
Questo verrà compilato bene.
double a = 100.;
Questo verrà compilato bene.
double a = .0;
Questo verrà compilato bene.
float a = 100.0f; 
Questo verrà compilato bene.
float a = 100.0; 
Ci sarà un errore di compilazione: la variabile è un float, ma il letterale è un double.

A proposito, puoi convertire esplicitamente un valore letterale intero in un valore float o double semplicemente ). Esempi: appending the suffix 'F' (for float) or D (for double

Codice Descrizione
double a = 100D; 
Questo verrà compilato bene.
float a = 100F; 
Questo verrà compilato bene.
int a = 300D; 
Ci sarà un errore di compilazione: la variabile è un int, ma il letterale è un double.

I valori letterali in virgola mobile possono utilizzare la notazione scientifica : oltre alla parte del numero con segno, puoi anche specificare una potenza di dieci. Esempio:

Letterale Notazione matematica Valore finale
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. Letterali stringa

Puoi anche specificare intere righe di testo nel tuo codice. Per indicare al compilatore di trattare una stringa come dati (un letterale) e non come parte del codice, l'intera stringa è racchiusa tra doppi apici su entrambi i lati.

Se una singola riga di codice ha più virgolette doppie, queste vengono divise in coppie. La prima virgoletta doppia indica l'inizio di un letterale. Il prossimo indica la fine del letterale. Quello successivo segna ancora una volta l'inizio di un nuovo letterale. E il successivo segna la fine del secondo letterale. E così via.

Ognuno di questi letterali è un String.

Esempi

Codice Spiegazione
"+" + "+" + "+" + "+" + "+"
Ci sono 5 letterali in una riga. Ciascuno di essi è composto da un singolo  +personaggio
""
Questo valore letterale è una stringa vuota. Una stringa senza caratteri.
"2+3" + "-5"
Ci sono due letterali qui. Il risultato sarà la stringa '' 2+3-5', non un numero
"return" + ";"
Ci sono anche due letterali qui. Non c'è alcuna dichiarazione di ritorno qui.

Se una stringa letterale è troppo lunga, può essere suddivisa in più righe e incollata insieme con l'operatore 'più':

Codice Spiegazione
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.";
Se emetti questa riga sullo schermo, tutto il testo verrà visualizzato su un'unica riga!


4. Caratteri letterali

È possibile specificare non solo valori letterali stringa nel codice, ma anche valori letterali composti da singoli caratteri. Si noti che non stiamo parlando di una stringa composta da un singolo carattere, ma piuttosto di letterali il cui tipo è char.

A differenza di una stringa, un carattere letterale è racchiuso tra virgolette singole . All'interno delle virgolette singole deve esserci un carattere e un solo carattere. Non puoi utilizzare virgolette singole vuote.

Esempi:

Codice Spiegazione
'A'
Valore letterale il cui tipo è char. Contiene la lettera latina 'A'.
'@' 
Valore letterale il cui tipo è char. Contiene il simbolo '@'
'' 
Valore letterale il cui tipo è char. Contiene un carattere giapponese. E anche questo è possibile.
'\u1f3a'
Valore letterale il cui tipo è char. Contiene un carattere Unicode specificato dal suo numero.

L'ultimo esempio assegna un carattere Unicode utilizzando una notazione speciale: prima abbiamo il prefisso \u, seguito da 4 caratteri esadecimali. Le prossime lezioni includono informazioni dettagliate su questo.