Java offre otto tipi di dati primitivi e numerosi altri tipi di dati complessi. Il loro scopo è de­ter­mi­na­re quali valori è possibile raf­fi­gu­ra­re e me­mo­riz­za­re in una variabile. A tutte le variabili in Java sono assegnati de­ter­mi­na­ti tipi di dati.

Quali sono i tipi di dati in Java?

In ogni lin­guag­gio di pro­gram­ma­zio­ne esistono diversi tipi di dati che con­ten­go­no de­ter­mi­na­ti oggetti e svolgono ope­ra­zio­ni pre­sta­bi­li­te. Spesso le si­mi­li­tu­di­ni sono molte, ma talvolta vi sono notevoli dif­fe­ren­ze nelle opzioni offerte da un dato lin­guag­gio. Ad esempio, se facciamo un confronto fra Python e Java, oltre agli aspetti in comune noterai numerose dif­fe­ren­ze che rendono ciascun lin­guag­gio più adatto a certi compiti rispetto ad altri. Java si basa su due diversi tipi di dati, che possono essere primitivi o complessi. Questi ultimi sono detti anche “tipi di ri­fe­ri­men­to”. I singoli tipi di dati in Java si dif­fe­ren­zia­no dal punto di vista delle di­men­sio­ni e de­ter­mi­na­no i valori che è possibile me­mo­riz­za­re in una variabile.

Mentre i tipi di dati primitivi con­sen­to­no soltanto di me­mo­riz­za­re valori semplici, i tipi di ri­fe­ri­men­to servono a creare strutture più complesse e a or­ga­niz­za­re e gestire grandi quantità di dati. Se desideri imparare a pro­gram­ma­re è im­por­tan­te non soltanto conoscere i diversi tipi di dati, ma anche uti­liz­zar­li nel migliore dei modi. Da un lato occorre co­no­scer­ne le fun­zio­na­li­tà e, dall’altro, sapere quanto spazio occupano o per­met­to­no di ri­spar­mia­re se si utilizza il tipo di dati più adatto.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

I tipi di dati primitivi in Java

In totale esistono otto diversi tipi di dati primitivi in Java, che con­ten­go­no in­ter­val­li di valori fissi e definiti. È possibile sud­di­vi­der­li in quattro categorie: tipo di dati logico, tipo di dati integrale, tipo di dati a virgola mobile e tipo di dati carattere. Non hanno nessuna ulteriore fun­zio­na­li­tà par­ti­co­la­re e sono noti anche come tipi di dati ele­men­ta­ri. Ogni tipo di dati occupa un numero fisso di bit. Nelle parti seguenti trovi maggiori dettagli su questi tipi di dati primitivi. Java riconosce i seguenti tipi ele­men­ta­ri:

  • boolean
  • byte
  • short
  • int oppure integer
  • long
  • float
  • double
  • char

boolean

Il tipo boolean in Java non è un tipo di dati numerico, ma re­sti­tui­sce soltanto due valori possibili: true e false. Pertanto, puoi uti­liz­zar­lo per de­ter­mi­na­re se una con­di­zio­ne è vera (true) o falsa (false). Il suo valore standard è “false” e fa parte dei tipi di dati logici. Occupa 1 bit e presenta la seguente sintassi:

boolean booleanVar;
java

byte

Il tipo byte è un tipo di dati integrale e co­sti­tui­sce un valore in com­ple­men­to a due con di­men­sio­ni di 8 bit o 1 byte. È uti­liz­za­to so­prat­tut­to quando occorre ri­spar­mia­re spazio negli array par­ti­co­lar­men­te grandi. Il suo in­ter­val­lo di valori va da -128 a 127 e il suo valore standard è 0. La sua sintassi è la seguente:

byte byteVar;
java

short

Anche short fa parte dei tipi di dati integrali in Java ed è uti­liz­za­to so­prat­tut­to per ri­spar­mia­re spazio negli array par­ti­co­lar­men­te grandi. Questo valore in com­ple­men­to a due occupa 16 bit o 2 byte e il suo in­ter­val­lo di valori va da -32768 a 32767 incluso. Per im­po­sta­zio­ne pre­de­fi­ni­ta il suo valore è 0. Il tipo short si usa così:

short shortVar
java

int oppure integer

Anche il tipo int oppure integer è un valore in com­ple­men­to a due e co­sti­tui­sce un tipo di dati integrale con di­men­sio­ni di 4 byte o 32 bit. Il suo in­ter­val­lo di valori comprende i numeri interi fra 2147483648 e 2147483647 e il suo valore standard è 0. La sua sintassi è la seguente:

int intVar
java

long

Il tipo di dati integrale di maggiori di­men­sio­ni è long. È il più grande sia per in­ter­val­lo di valori, che va da -9223372036854775808 a 9223372036854775807, sia per lo spazio occupato dal tipo di dati stesso, pari a 8 byte o 64 bit. Pertanto, questo valore in com­ple­men­to a due è uti­liz­za­to nei casi in cui gli altri tipi di dati integrali non sono suf­fi­cien­ti. Tuttavia, è anche il tipo di dati che richiede di gran lunga più memoria. Il suo valore standard è 0. La sua sintassi è la seguente:

long longVar
java

float

Il tipo float è un tipo di dati a virgola mobile ed è uti­liz­za­to per me­mo­riz­za­re numeri reali. Le sue di­men­sio­ni sono di 32 bit ed è conforme alla norma IEEE 754, che definisce la rap­pre­sen­ta­zio­ne standard di numeri a virgola mobile in formato binario e decimale sui computer. Il valore standard di float è 0,0 e il suo in­ter­val­lo di valori permette di rap­pre­sen­ta­re fino a sette cifre decimali. Rispetto a double, float è meno preciso e quindi non andrebbe uti­liz­za­to quando la pre­ci­sio­ne dei valori è par­ti­co­lar­men­te im­por­tan­te. In caso contrario è possibile occupare meno spazio uti­liz­zan­do float. La sua sintassi è la seguente:

float floatVar;
java

double

Il tipo double è circa due volte più preciso rispetto a float. Per il resto, svolge un compito simile. Occupa 64 bit e può rap­pre­sen­ta­re fino a 16 cifre decimali. Anche il suo valore standard è 0,0. Se ti servono valori più precisi, ti con­si­glia­mo di uti­liz­za­re sempre double, anche se questo tipo di dati non può essere preciso fin nei minimi dettagli. Se invece ti serve lavorare con valori di pre­ci­sio­ne assoluta, utilizza la classe Big­De­ci­mal. La sintassi di double è la seguente:

double doubleVar;
java

char

Il tipo char è un tipo di dati carattere. Serve a me­mo­riz­za­re caratteri basati sul set di caratteri Unicode e rende quindi possibile la por­ta­bi­li­tà su numerose piat­ta­for­me dif­fe­ren­ti. Ogni carattere necessita di 2 byte di spazio in memoria. Il suo in­ter­val­lo di valori è conforme all’ASCII (“American Standard Code for In­for­ma­tion In­ter­chan­ge”, in italiano “codice standard americano per lo scambio di in­for­ma­zio­ni”) e va quindi da “\u0000” (ossia 0) a “\uffff” (ossia 65535). Il valore standard di char è “\u0000” e la sua sintassi si presenta così:

char charVar
java

I tipi di dati in Java: esempi di tipi complessi

La seconda categoria di tipi di dati in Java è co­sti­tui­ta dai co­sid­det­ti tipi di ri­fe­ri­men­to o tipi complessi. Hanno questo nome perché fanno ri­fe­ri­men­to a oggetti. Di norma non sono pre­de­fi­ni­ti, a dif­fe­ren­za dei tipi di dati primitivi, ma sono stabiliti dal pro­gram­ma­to­re o dalla pro­gram­ma­tri­ce (fa eccezione String). Per­met­to­no di uti­liz­za­re i metodi e possono avere anche il valore 0 (ossia “vuoto”). Mentre i tipi di dati primitivi iniziano per lettera minuscola, i tipi di ri­fe­ri­men­to hanno la prima lettera maiuscola. Nelle parti seguenti ti pre­sen­tia­mo i prin­ci­pa­li tipi di ri­fe­ri­men­to.

Stringhe

String è una classe rap­pre­sen­ta­bi­le per mezzo di una sequenza di caratteri. Tra le altre cose, questa ca­rat­te­ri­sti­ca con­trad­di­stin­gue questo tipo di dati complesso dal tipo char primitivo. La stringa di caratteri esiste come oggetto nella classe java.lang. Tramite i diversi metodi offerti dalla classe string è possibile cercare singoli caratteri nella sequenza, con­fron­ta­re le stringhe fra loro, cercare e copiare le stringhe. Per con­tras­se­gna­re le stringhe si uti­liz­za­no le vir­go­let­te alte. La sintassi di questo tipo di ri­fe­ri­men­to si presenta così:

<String_Tipo> <string_variabile> = "<sequenzastringa>";
java

Ad esempio, le stringhe fun­zio­na­no come in questa sezione di codice:

// Come creare una stringa senza un nuovo operatore
String a = "Questa è la tua nuova stringa";
/ / Come creare una stringa con un nuovo operatore
String a1 = nuova stringa ("Questa è la tua nuova stringa");
java

Array

Gli array servono a me­mo­riz­za­re più valori all’interno di una variabile senza dover uti­liz­za­re variabili diverse per ogni singolo valore. Per indicarli si uti­liz­za­no le parentesi quadre. I valori me­mo­riz­za­ti sono invece fra parentesi graffe e separati da virgole gli uni dagli altri. La sintassi di un array è la seguente:

TipoDati[] NomeArray = {Valore1, Valore2, Valore3,…};
java

Se desideri creare un array con delle stringhe, procedi come nell’esempio seguente:

String[] colori = {"blu", "rosso", "giallo", "lilla"};
java

Se desideri creare un array con numeri interi, puoi fare così:

int[] numeri = {5, 10, 15, 20};
java

Classi

Le classi in Java sono tipi di dati che fungono da modello in cui creare poi degli oggetti. Con­ten­go­no diversi com­po­nen­ti. Tra questi vi sono il nome della classe, il suo mo­di­fi­ca­to­re e un corpo racchiuso fra parentesi graffe. Nella pratica si pre­sen­ta­no come nell’esempio seguente:

public class Main {
	int a = 10;
}
java

In­ter­fac­ce

In Java, per in­ter­fac­cia si intende una classe astratta. Un’in­ter­fac­cia permette a una classe di accedere a diverse funzioni. A tal fine è ne­ces­sa­rio prima im­ple­men­tar­la. Le in­ter­fac­ce con­ten­go­no solo costanti e metodi astratti. La loro sintassi si presenta quindi nel modo seguente:

interface {
	metodi astratti
}
java

Per spiegare il fun­zio­na­men­to delle in­ter­fac­ce possiamo usare questo semplice esempio:

interface Pizza {
	public void ingredienti();
	public void preparazione();
}
class Funghi implements Pizza {
	public void ingredienti() {
		System.out.println("Champignon, Pomodoro, Origano, Mozzarella");
}
public void preparazione() {
	System.out.println("Dopo un quarto d'ora, la pizza è pronta");
}
}
class Main {
	public static void main(String[] args) {
		Funghi myFunghi = new Funghi();
		myFunghi.ingredienti();
		myFunghi.preparazione();
	}
}
java

Uti­liz­zan­do il comando Java System.out.println, otteniamo questo risultato:

Champignon, Pomodoro, Origano, Mozzarella
Dopo un quarto d'ora, la pizza è pronta
java

Oggetti

Anche gli oggetti fanno parte dei tipi di dati Java più complessi. Gli oggetti sono istanze di classi che possono quindi in­te­ra­gi­re fra loro tramite metodi. Nell’esempio seguente creiamo più oggetti all’interno di una classe Main:

public class Main {
	int a = 10;
public static void main(String[] args) {
	Main myObj1 = new Main();
	Main myObj2 = new Main();
	System.out.println(myObj1.a);
	System.out.println(myObj2.a);
	}
}
java

Il relativo output si presenta così:

10
10
java

Enum

Le enum sono una classe speciale che permette di integrare costanti non mo­di­fi­ca­bi­li nel codice. Queste variabili ricevono valori fissi che non è possibile mo­di­fi­ca­re suc­ces­si­va­men­te. Questo tipo di dati è par­ti­co­lar­men­te utile se ti servono variabili che devono pre­sen­ta­re soltanto pochi stati possibili. La sintassi di una enum si presenta così:

enum Nome_della_classe {
	VALORE1,
	VALORE2,
	VALORE3
}
java
Vai al menu prin­ci­pa­le