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, doubleebooleanchar
  • 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, shorte . Il tipo da utilizzare dipende dal valore numerico.intlong

I tipi a virgola mobile rappresentano numeri con una parte frazionaria, contenenti uno o più decimali. Ci sono due tipi: floate 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 bytetipo di dati può memorizzare numeri interi da -128 a 127. Questo può essere utilizzato al posto di intaltri 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 shorttipo di dati può memorizzare numeri interi da -32768 a 32767:

Esempio

short myNum = 5000;
System.out.println(myNum);

int

Il inttipo di dati può memorizzare numeri interi da -2147483648 a 2147483647. In generale, e nel nostro tutorial, il tipo di intdati è il tipo di dati preferito quando creiamo variabili con un valore numerico.

Esempio

int myNum = 100000;
System.out.println(myNum);

Lungo

Il longtipo 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 floattipo 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 doubletipo 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 floato 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 doublele variabili hanno una precisione di circa 15 cifre. Pertanto è più sicuro da usare doubleper 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 booleanparola chiave e può assumere solo i valori trueo 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 chartipo 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 Stringtipo 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.


Mettiti alla prova con gli esercizi

Esercizio:

Aggiungi il tipo di dati corretto per le seguenti variabili:

 myNum = 9;
 myFloatNum = 8.99f;
 myLetter = 'A';
 myBool = false;
 myText = "Hello World";