  |
Dimensione fissa per tutte le Java Virtual Machine: |
Visto che laparte fondamentale di questa sezione sono tipi primitivi, cominciamo a esaminarne le caratteristiche più importanti. Java è progettato per essere un linguaggio portatile, ovvero linguaggio che può essere eseguito su sistemi operativi diversi. Per questo motivo si pone la massima attenzione ad dettagli che in altri linguaggi sono considerati con minor rigore.
Uno di questi dettagli è la dimensione dei tipi di dato. Nella seguente tabella sono riassunti i tipi di dato primitivo e la loro dimensione come viene manipolata dall'interprete Java.
| Tipi Interi |
Dimensione |
| byte |
8 bit |
| short |
16 bit |
| int |
32 bit |
| long |
64 bit |
I tipi di dato intero sono quattro. Il tipo di dato più usato è l'intero vero e proprio, int, che ha dimensione 32 bit. Se occorrono dei tipi di dato i dimensione inferiore si può ricorrere a byte e short, e sono rispettivamente a 8 e 16 bit. Quando invece occorrono interi di grandi dimensioni, si ricorre al tipo long che ha 64 bit. Notare che quest'ultimo tipo è di uso abbastanza frequente, più che short e byte. Per esempio l'ora attuale viene rappresentato in Java con il numero di secondi trascorsi dal 1 gennaio 1970, numero molto grande, che viene normalmente contenuto in una variabile di tipo long. Ci sarebbe anche da puntualizzare il fatto che i tipi interi contengono dati in rappresentazione cosiddetta in complemento a due. Rimandiamo a testi di informatica di base per dettagli su questa rappresentazione, anche se all'atto pratico non è necessario conoscerla approfonditamente, se non per il fatto che bisogna sapere che sui numeri interi è possibile effettuare solo operazioni di tipo intero.
| Tipi Floating |
Dimensione |
| float |
32 bit (IEEE 754) |
| double |
64 bit (IEEE 754) |
Invece il tipi di dato in virgola mobile sono solamente due, più precisamente il float e il double. Il primo rappresenta un numero in virgola mobile a 32 bit mentre secondo ha 64 bit. In questo caso ciò che differenzia i numeri virgola mobile da quelli interi è appunto la rappresentazione. In Java i numeri virgola mobile vengono rappresentati utilizzando il formato standard IEEE 754. Non ha molta importanza sapere i dettagli di questo formato, quello che è importante sapere è che con questa rappresentazione è possibile specificare numeri decimali approssimati, ma con un campo di valori più grande rispetto a quello del numeri interi. Un altro cosa importante il fatto che quest'aritmetica supporta infiniti e forme indeterminate.
| Altri Tipi |
Dimensione |
| boolean |
1 bit |
| char |
16 bit (Unicode) |
rimangono da esaminare altri due tipi di dato. Il primo è il boolean, che rappresenta semplicemente un valore vero o falso, che viene utilizzato nei calcoli che servono verificare condizioni (per esempio negli if o nei cicli while). I soli valori possibili sono appunto true e false.
L'altro tipo di dato da esaminare è il carattere. Per molti versi il carattere è sostanzialmente un numero intero, infatti è molto facile convertirlo a intero e viceversa. L'aspetto importante per carattere in Java, che lo differenzia dei caratteri di altri linguaggi, è il fatto che che è a 16 bit, e non a 8 bit come nella maggior parte degli altri casi. Questo perché tradizionalmente i caratteri sono numeri che rappresentano un elemento del set di caratteri ASCII, e 8 bit bastano per individuare il carattere (per la verità ne bastano 7, ma spesso si usano set di caratteri ampliati ad 8 bit). In Java invece i caratteri sono nel set di caratteri internazionale Unicode, e occorrono 16 bit per individuarli. Il fatto che i caratteri in Java siano Unicode si vede particolarmente delle operazioni di I/O: infatti solitamente i file vengono letti e scritti usando i byte e non i caratteri. Questo perché solitamente vengono scritti assumendo che contengano solo caratteri a 8 bit. Quindi bisogno operare delle conversioni tra Unicode e il set di caratteri del file.
|