Tipizzazione Statica e Tipi Primitivi in Java
- Java è un linguaggio fortemente tipizzato, il che significa che ogni variabile e espressione ha un tipo definito in modo rigoroso.
- I tipi primitivi in Java sono
byte
,short
,int
,long
,char
,float
,double
eboolean
. - I tipi primitivi sono i mattoni fondamentali del linguaggio e non sono oggetti, ma piuttosto valori semplici che possono essere manipolati direttamente.
Java è un linguaggio fortemente tipizzato
È importante affermare fin dall'inizio che Java è un linguaggio fortemente tipizzato, in inglese Strongly Typed.
Parte della sicurezza e della robustezza di Java deriva da questo aspetto. Per comprendere il significato di ciò, si considerino i seguenti punti:
- In primo luogo, ogni variabile ha un tipo, ogni espressione ha un tipo e ogni tipo è definito in modo rigoroso.
- In secondo luogo, tutte le assegnazioni, sia esplicite sia tramite passaggio di parametri nelle chiamate di metodo, vengono verificate per la compatibilità dei tipi. Non esistono coercizioni o conversioni automatiche di tipi in conflitto, come accade in alcuni linguaggi. Il compilatore Java controlla tutte le espressioni e i parametri per assicurare che i tipi siano compatibili. Qualsiasi incompatibilità di tipo è considerata un errore che deve essere corretto prima che il compilatore possa terminare la compilazione della classe.
I tipi primitivi
Java definisce otto tipi primitivi di dato: byte
, short
, int
, long
, char
, float
, double
e boolean
.
I tipi primitivi sono comunemente chiamati anche tipi semplici e in questa guida verranno utilizzati entrambi i termini. Essi possono essere suddivisi in quattro gruppi:
-
Interi
Questo gruppo include
byte
,short
,int
elong
, che rappresentano numeri interi con segno. -
Numeri in virgola mobile
Questo gruppo include
float
edouble
, che rappresentano numeri con precisione frazionaria. -
Caratteri
Questo gruppo include
char
, che rappresenta simboli in un insieme di caratteri, come lettere e numeri. -
Booleano
Questo gruppo include
boolean
, un tipo speciale per rappresentare valori vero/falso.
È possibile utilizzare questi tipi così come sono, oppure per costruire array o tipi di classe personalizzati usandoli come componenti. I tipi primitivi sono i mattoni fondamentali del linguaggio Java e sono utilizzati per rappresentare i dati di base. Non sono oggetti, ma piuttosto valori semplici che possono essere manipolati direttamente.
Essi costituiscono la base per tutti gli altri tipi di dato che è possibile creare.
I tipi primitivi rappresentano singoli valori—non oggetti complessi. Sebbene Java sia per il resto completamente orientato agli oggetti, i tipi primitivi non lo sono.
Essi sono analoghi ai tipi semplici presenti nella maggior parte degli altri linguaggi non orientati agli oggetti. La ragione di ciò è l'efficienza: trasformare i tipi primitivi in oggetti avrebbe ridotto eccessivamente le prestazioni.
I tipi primitivi sono definiti in modo da avere un intervallo esplicito e un comportamento matematico specifico. Linguaggi quali C e C++ permettono che la dimensione di un intero vari in base alle caratteristiche dell'ambiente di esecuzione. Java, invece, si comporta diversamente. A causa del requisito di portabilità, tutti i tipi di dato hanno un intervallo rigidamente definito. Ad esempio, un int
è sempre di 32 bit, indipendentemente dalla piattaforma. Ciò consente di scrivere programmi che possono essere eseguiti senza porting su qualunque architettura. Sebbene specificare con rigore la dimensione di un intero possa comportare una lieve perdita di prestazioni in alcuni ambienti, tale scelta è necessaria per garantire la portabilità.
A partire dalla prossima lezione, esamineremo i tipi primitivi in dettaglio, partendo dai tipi interi e in virgola mobile.