Tipi di dati Java
Tipi di dati Java
Come spiegato nel capitolo precedente, una variabile in Java deve essere un tipo di dati specificato:
Esempio
int myNum = 5; // Integer (whole number)
float myFloatNum = 5.99f; // Floating point number
char myLetter = 'D'; // Character
boolean myBool = true; // Boolean
String myText = "Hello"; // String
I tipi di dati sono divisi in due gruppi:
- Tipi di dati primitivi: include
byte
,short
,int
,long
,float
,double
eboolean
char
- Tipi di dati non primitivi, come String , Array e Classi (imparerai di più su questi in un capitolo successivo)
Tipi di dati primitivi
Un tipo di dati primitivo specifica la dimensione e il tipo dei valori delle variabili e non ha metodi aggiuntivi.
Esistono otto tipi di dati primitivi in Java:
Data Type | Size | Description |
---|---|---|
byte | 1 byte | Stores whole numbers from -128 to 127 |
short | 2 bytes | Stores whole numbers from -32,768 to 32,767 |
int | 4 bytes | Stores whole numbers from -2,147,483,648 to 2,147,483,647 |
long | 8 bytes | Stores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
float | 4 bytes | Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits |
double | 8 bytes | Stores fractional numbers. Sufficient for storing 15 decimal digits |
boolean | 1 bit | Stores true or false values |
char | 2 bytes | Stores a single character/letter or ASCII values |
Numeri
I tipi di numeri primitivi sono divisi in due gruppi:
I tipi interi memorizzano numeri interi, positivi o negativi (come 123 o -456), senza decimali. I tipi validi
sono byte
, short
e . Il tipo da utilizzare dipende dal valore numerico.int
long
I tipi a virgola mobile rappresentano numeri con una parte frazionaria, contenenti uno o più decimali. Ci sono due tipi: float
e double
.
Anche se ci sono molti tipi numerici in Java, i più usati per i numeri sono int
(per i numeri interi) e double
(per i numeri in virgola mobile). Tuttavia, li descriveremo tutti mentre continui a leggere.
Tipi interi
Byte
Il byte
tipo di dati può memorizzare numeri interi da -128 a 127. Questo può essere utilizzato al posto di int
altri tipi interi per risparmiare memoria quando si è certi che il valore sarà compreso tra -128 e 127:
Esempio
byte myNum = 100;
System.out.println(myNum);
Corto
Il short
tipo di dati può memorizzare numeri interi da -32768 a 32767:
Esempio
short myNum = 5000;
System.out.println(myNum);
int
Il int
tipo di dati può memorizzare numeri interi da -2147483648 a 2147483647. In generale, e nel nostro tutorial, il tipo di int
dati è il tipo di dati preferito quando creiamo variabili con un valore numerico.
Esempio
int myNum = 100000;
System.out.println(myNum);
Lungo
Il long
tipo di dati può memorizzare numeri interi da -9223372036854775808 a 9223372036854775807. Viene utilizzato quando int non è sufficientemente grande per memorizzare il valore. Nota che dovresti terminare il valore con una "L":
Esempio
long myNum = 15000000000L;
System.out.println(myNum);
Tipi in virgola mobile
Dovresti usare un tipo a virgola mobile ogni volta che hai bisogno di un numero con un decimale, come 9,99 o 3,14515.
Galleggiante
Il float
tipo di dati può memorizzare numeri frazionari da 3.4e−038 a 3.4e+038. Nota che dovresti terminare il valore con una "f":
Esempio
float myNum = 5.75f;
System.out.println(myNum);
Doppio
Il double
tipo di dati può memorizzare numeri frazionari da 1.7e−308 a 1.7e+308. Nota che dovresti terminare il valore con una "d":
Esempio
double myNum = 19.99d;
System.out.println(myNum);
Usa float
o double
?
La precisione di un valore in virgola mobile indica quante cifre può avere il valore dopo la virgola decimale. La precisione di float
è di sole sei o sette cifre decimali, mentre double
le variabili hanno una precisione di circa 15 cifre. Pertanto è più sicuro da usare double
per la maggior parte dei calcoli.
Numeri scientifici
Un numero in virgola mobile può anche essere un numero scientifico con una "e" per indicare la potenza di 10:
Esempio
float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);
booleani
Un tipo di dati booleano viene dichiarato con la boolean
parola chiave e può assumere solo i valori true
o false
:
Esempio
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun); // Outputs true
System.out.println(isFishTasty); // Outputs false
I valori booleani sono usati principalmente per i test condizionali, di cui imparerai di più in un capitolo successivo.
Caratteri
Il char
tipo di dati viene utilizzato per memorizzare un
singolo carattere. Il carattere deve essere racchiuso tra virgolette singole, come 'A' o 'c':
Esempio
char myGrade = 'B';
System.out.println(myGrade);
In alternativa, puoi utilizzare i valori ASCII per visualizzare determinati caratteri:
Esempio
char myVar1 = 65, myVar2 = 66, myVar3 = 67;
System.out.println(myVar1);
System.out.println(myVar2);
System.out.println(myVar3);
Suggerimento: è possibile trovare un elenco di tutti i valori ASCII nel nostro Riferimento tabella ASCII .
stringhe
Il String
tipo di dati viene utilizzato per memorizzare una sequenza di caratteri (testo). I valori stringa devono essere racchiusi tra virgolette:
Esempio
String greeting = "Hello World";
System.out.println(greeting);
Il tipo String è così usato e integrato in Java, che alcuni lo chiamano "il nono tipo speciale".
Una stringa in Java è in realtà un tipo di dati non primitivo , perché si riferisce a un oggetto. L'oggetto String dispone di metodi utilizzati per eseguire determinate operazioni sulle stringhe. Non preoccuparti se non capisci ancora il termine "oggetto" . Impareremo di più su stringhe e oggetti in un capitolo successivo.
Tipi di dati non primitivi
I tipi di dati non primitivi sono detti tipi di riferimento perché fanno riferimento a oggetti.
La principale differenza tra i tipi di dati primitivi e non primitivi sono:
- I tipi primitivi sono predefiniti (già definiti) in Java. I tipi non primitivi vengono creati dal programmatore e non sono definiti da Java (tranne
String
). - I tipi non primitivi possono essere usati per chiamare metodi per eseguire determinate operazioni, mentre i tipi primitivi no.
- Un tipo primitivo ha sempre un valore, mentre i tipi non primitivi possono essere
null
. - Un tipo primitivo inizia con una lettera minuscola, mentre i tipi non primitivi iniziano con una lettera maiuscola.
- La dimensione di un tipo primitivo dipende dal tipo di dati, mentre i tipi non primitivi hanno tutti la stessa dimensione.
Esempi di tipi non primitivi sono Strings , Arrays , Classes, Interface , ecc. Imparerai di più su questi in un capitolo successivo.