"Ciao, Amico!"

"Ciao Rishi!"

"Hai già imparato le basi della sintassi Java, quindi ora voglio darti qualche dettaglio in più."

"Oggi parleremo dei tipi primitivi e di quanta memoria occupano. Questa conoscenza tornerà utile, forse anche oggi. Ecco i tipi base:"

Tipo Dimensioni,
byte
Intervallo di valori Valore di default Descrizione
byte 1 -128 .. 127 0 Il numero intero più piccolo, 1 byte
corto 2 -32.768 .. 32.767 0 Numero intero breve, 2 byte
int 4 -2*10 9  .. 2*10 9 0 Numero intero, 4 byte
lungo 8 -9*10 18  .. 9*10 18 0L Intero lungo, 8 byte
galleggiante 4 -10 127  .. 10 127 0.0f Numero frazionario, 4 byte
Doppio 8 -10 1023  .. 10 1023 0.0d Numero frazionario che è due volte più grande di un float, 8 byte
booleano 1 vero falso falso Tipo booleano (solo true o false)
char 2 0..65.535 '\u0000' Caratteri, 2 byte, tutti valori senza segno
Oggetto 4 Qualsiasi riferimento o null. nullo Memorizza i riferimenti alle istanze di Object o alle classi che discendono da Object

"Lascia che ti dica di più su ogni tipo."

"Il tipo byte è il tipo intero più piccolo. Le variabili di questo tipo occupano solo 1 byte di memoria. Un byte può memorizzare valori nell'intervallo compreso tra -128 e 127."

"Perché abbiamo bisogno di un tipo così piccolo? Perché non possiamo sempre usare int?"

"Potremmo. Ma se stai creando array di grandi dimensioni i cui elementi non hanno mai bisogno di memorizzare valori maggiori di 100, perché non usare questo tipo? Ha senso?"

"Uno short è lungo il doppio di un byte e memorizza solo numeri interi. Il numero positivo più grande che può memorizzare è 32.767. Il numero negativo più grande che può memorizzare è -32.768."

"Il  tipo int  che conosci già. Può memorizzare numeri interi nell'intervallo ±2.000.000.000."

"Il  tipo float  è stato creato per memorizzare numeri reali (frazionari). La sua dimensione è di 4 byte."

"I numeri frazionari sono memorizzati in una forma piuttosto interessante."

"Ad esempio, il numero  987654.321  può essere rappresentato come 0.987654321*10 6 . Ciò significa che può essere rappresentato come due numeri in memoria: 0. 987654321 ( mantissa o significante ) e 6 ( esponente in base 10 )."

"A cosa ci serve?"

"Questo approccio ci consente di utilizzare 4 byte per memorizzare numeri molto più grandi di quelli che un int può memorizzare. Per fare ciò, dobbiamo sacrificare l'accuratezza. Solo una parte di quei byte viene utilizzata per memorizzare la mantissa, il che significa che questi numeri memorizzano solo 6-7 cifre decimali. Le cifre decimali meno significative vengono scartate."

"Questi numeri sono anche chiamati numeri in virgola mobile. Da qui deriva il nome del tipo float . "

"Vedo."

"Il tipo double è simile a float , ma lungo il doppio (da cui il nome), occupando 8 byte. Può contenere una mantissa più grande e cifre più significative. Se hai bisogno di memorizzare numeri reali, prova sempre a usare questo tipo. "

" char è un tipo ibrido. I suoi valori possono essere interpretati sia come numeri (che si possono sommare o sottrarre) che come caratteri. Questo è possibile perché anche se i caratteri hanno una rappresentazione visiva, il computer li vede principalmente come numeri. Ed è più comodo per trattarli come numeri. Un'altra cosa: il tipo char è sempre positivo. Non può contenere valori negativi. "

"Il tipo booleano è un tipo logico che può memorizzare solo due valori: true o false  . "

"Nonostante la sua presenza in questo grafico, il tipo Object non è un tipo primitivo. È la classe base per tutte le classi in Java. Innanzitutto, tutte le classi derivano da esso e quindi contengono i suoi metodi. In secondo luogo, una variabile Object può memorizzare riferimenti a oggetti di qualsiasi tipo, incluso null ( un riferimento null )."

"Ho imparato molto oggi. Grazie per la lezione, Rishi."