Pagina Iniziale | Preferiti Comunity: Login | Registrati | Newsletter | Forum | Concorsi Newsgroup
Canali: Hardware | Software | Files | Webmaster | Cellulari | Shop     
Nel sito: News | Articoli | Files | Manuali | Consigli PC | Schede cellulari | Programmaz. | Hosting | Motori Ricerca | Glossario | Link
Servizi: Shopping | Forum | Crea un BLOG | Cartucce Compatibili | Hosting Aruba | Tool News |   Sponsor: Automazione Industriale
  Articoli

Recensioni
Consigli per PC


  News e files

Software
Telefonia
Internet
Tecnologia
Files e Download


  Manualistica

Guide HW/SW
Scripts ASP
Scripts HTML
Scripts Java
Scripts Delphi
Glossario


  Shopping

Hardware
Software e Giochi
Elettronica
Cinema e Film
Console e Accessori
Prodotti Ufficio
Formazione e Corsi

Tieniti aggiornato sul mondo della tecnologia con la nostra newsletter!
La tecnologia sulla tua
casella e-mail

[Info Newsletter]


Concessionaria Pubblicitaria


<< News Precedente [Fine Pagina] News Successiva >>
Il linguaggio Java: lez.4

Un articolo di: Alberto Zilli del 03/12/2002      Letture: 7118
Vai alla pagina:
 2 - Unità didattica 3.2)

10,63 Euro
Il linguaggio java da HOEPLI.it



  Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!

- Tipi di dati primitivi

Java definisce otto tipi di dati primitivi:

tipi interi: byte, short, int, long

tipi floating point (o a virgola mobile): float e double

tipo testuale: char

tipo logico-booleano: boolean

 

- Tipi di dati interi, casting e promotion

I tipi di dati interi sono ben quattro: byte, short, int, long. Essi condividono la stessa funzionalità (tutti possono immagazzinare numeri interi positivi o negativi), ma differiscono per quanto riguarda il proprio intervallo di rappresentazione. Infatti, un byte può immagazzinare un intero utilizzando un byte (otto bit), uno short due byte, un int quattro byte ed un long otto byte. Lo schema seguente riassume dettagliatamente i vari intervalli di rappresentazione:

    byte 8 bit -128,..,+127

    short 16 bit -32.768,..,+32.767

    int 32 bit -2.147.483.648,..,+2.147.483.647

    long 64 bit -9.223.372.036.854.775.808,..,9.223.372.036.854.775.807

Per immagazzinare un intero, si possono utilizzare tre forme: decimale, ottale ed esadecimale. Per la notazione ottale basta anteporre al numero intero uno 0 (zero), mentre per la notazione esadecimale, zero e x (indifferentemente maiuscola o minuscola). Ecco qualche esempio d’utilizzo di tipi interi:

- byte b=10; //notazione decimale

- short s=022; //notazione ottale

- int i=1000000000; //notazione decimale

- long l=0x12acd; //notazione esadecimale

C’è da fare però una precisazione. Facciamo un esempio:

    byte b=50;

Questo statement è corretto. Il numero intero 50 è tranquillamente compreso nell’intervallo di rappresentazione di un byte che va da –128 a +127. Il compilatore determina la grandezza del valore numerico, e controlla se è compatibile con il tipo di dato dichiarato. Allora, consideriamo quest’altro statement:

    b=b*2;

Ciò darà luogo ad un errore in compilazione! Infatti, il compilatore non eseguirà l’operazione di moltiplicazione per controllare la compatibilità con il tipo di dato dichiarato, bensì, promuoverà automaticamente la cifra che si trova alla destra dell’espressione di assegnazione ad int, dato che di default assumerà che 2 sia un int. Quindi, se 50*2 è un int, non può essere immagazzinato in b che è un byte. Il fenomeno appena descritto è conosciuto sotto il nome di "promozione automatica nelle espressioni". Ma, evidentemente, 50*2 è immagazzinabile tranquillamente in un byte. Esiste una tecnica per forzare una certa quantità, ad essere immagazzinata in un certo tipo di dato. Questa tecnica è nota con il nome di "cast" (o "casting"). La sintassi da utilizzare per risolvere il nostro problema è:

    b=(byte)b*2;

In questo modo, il compilatore sarà avvertito che un’eventuale perdita di precisione è calcolata e sotto controllo.

Bisogna essere però molto prudenti nell’utilizzare il casting in modo corretto. Infatti se scrivessimo:

    b=(byte)128;

il compilatore non segnalerà nessun tipo di errore. In realtà, siccome il cast agisce troncando i bit in eccedenza (nel nostro caso, siccome un int utilizza 32 bit, mentre un byte solo 8, saranno troncati i primi 24 bit dell’int), la variabile b avrà il valore di –128 e non di 128!

Notare che, se utilizziamo una variabile long, a meno di cast espliciti, sarà sempre inizializzata con un intero. Quindi se scriviamo:

    long l=2000;

Dobbiamo tener ben presente che 2000 è un int per default, ma il compilatore non ci segnalerà errori perché un int in un long può essere tranquillamente immagazzinato. Per la precisione dovremmo scrivere:

    long l=(long)2000;

oppure con una sintassi equivalente:

    long l=2000L;

Quindi, un cast a long, è possibile anche posponendo una "elle" maiuscola o minuscola dopo il valore intero assegnato. Si preferisce utilizzare la notazione maiuscola, dato che una "elle" minuscola si può confondere con un numero "uno" in alcuni ambienti di sviluppo. Notare che saremo obbligati ad un cast a long, nel caso in cui volessimo assegnare alla variabile l un valore fuori dell’intervallo di rappresentazione di un int.

 

- Tipi di dati a virgola mobile, casting e promotion

Java per i valori floating point utilizza lo standard di decodifica IEEE-754. I due tipi che possiamo utilizzare sono:

    float 32 bit

    double 64 bit

E’ possibile utilizzare la notazione esponenziale o ingegneristica (la "e" può essere sia maiuscola sia minuscola). Per quanto riguarda cast e promotion, la situazione cambia rispetto al caso dei tipi interi. Il default è double e non float. Ciò implica che se vogliamo assegnare un valore a virgola mobile ad un float non possiamo fare a meno di un cast. Per esempio la seguente riga di codice, porterebbe ad un errore in compilazione:

    float f=3.14;

Anche in questo caso, il linguaggio ci viene incontro permettendoci il cast con la sintassi breve:

    float f=3.14F;

La "effe" può essere sia maiuscola sia minuscola.

Esiste, per quanto ridondante, anche la forma contratta per i double, infatti:

    double d=10.12E24;

è equivalente a scrivere:

    double d=10.12E24D;

N.B. : ciò che sembra evidente è che il nostro non sia il linguaggio ideale per fare dei calcoli! Un altro classico problema che potrebbe presentarsi, è quando si dividono due numeri interi. Il risultato infatti sarà sicuramente un numero intero! Consiglio saggio: in caso di espressioni aritmetiche, utilizzare solamente double. In altri tempi questo consiglio sarebbe stato considerato folle…

- Tipo di dato logico - booleano

Il tipo di dato boolean, utilizza solo un bit per memorizzare un valore, e gli unici valori che può immagazzinare sono true e false. Per esempio:

    boolean b=true;

- Tipo di dato primitivo letterale

Il tipo char ci permette di immagazzinare caratteri (uno per volta). Utilizza l’insieme Unicode per la decodifica. Unicode è uno standard a 16 bit, che contiene tutti i caratteri della maggior parte degli alfabeti del mondo. Fortunatamente l’insieme ASCII, che probabilmente è più familiare al lettore, è un sottoinsieme dello Unicode. I primi 256 caratteri dei due insiemi coincidono. Per maggiori informazioni, visitare il sito www.unicode.org .

Possiamo assegnare ad un char un qualsiasi carattere che si trova sulla nostra tastiera, oppure passargli direttamente una cifra Unicode in esadecimale che identifica univocamente un determinato carattere, anteponendo ad essa il prefisso "\u". In qualsiasi caso, dobbiamo comprendere tra apici singoli, il valore da assegnare. Ecco qualche esempio:

    char primoCarattere=’a’;

    char car=’@’;

    char carattereUnicodeNonIdentificato=’\uABC8’;

Esiste anche la possibilità di immagazzinare caratteri di escape come:

    ‘\n’ che equivale ad andare a capo

    ‘\\’ che equivale ad un solo \

    ‘\t’ che equivale ad una tabulazione

    ‘\’’ che equivale ad un apice singolo

    ‘\"’ che equivale ad un doppio apice (virgolette)

    . . .

N.B.: notare che è possibile inserire un carattere in una certa espressione aritmetica, per esempio, sommare un char con un int. Infatti ad ogni carattere corrisponde un numero intero.

 

Vai alla pagina:

Elenco delle pagine di "Il linguaggio Java: lez.4"

Obbiettivi e Unità Didattica 3.1) - Pagina 1
Unità didattica 3.2) - Pagina 2
Unità didattica 3.3) - Pagina 3
Unità didattica 3.4) - Pagina 4
Unità didattica 3.5) - Pagina 5
Unità didattica 3.6) - Pagina 6



[Indietro]    [Su]      [Home]      [Commenti]      [V. Stampabile]

Commento di Anonimo, scritto il 02/09/2004 alle 15:45:01
Peccato che le immagini non si vedano e che il testo del codice sorgente sia formattato malamente, comunque grazie mille per il contenuto che mi ha splendidamente chiarito un errore concettuale che facevo. Complimenti e grazie ancora fabio.

Commento di Anonimo, scritto il 01/12/2004 alle 12:25:30
mmmmm

Commento di Anonimo, scritto il 01/12/2004 alle 12:27:00
hghjj

Commento di Anonimo (ip: 81.208.106.71), scritto il 11/01/2005 alle 18:24:14
ottimo

Commento di Anonimo (ip: 82.51.17.216), scritto il 19/03/2005 alle 16:24:31
bravo!

Commento di Anonimo (ip: 80.20.97.114), scritto il 13/10/2005 alle 18:04:28
cioa

Commento di Anonimo (ip: 87.3.211.45), scritto il 08/11/2005 alle 16:33:29
Contenuto ottimo, ma come mai le immagini non si vedono?
Sarebbe interessante per un neofita poter consultare il listato di un programma con commenti riga per riga.Comunque grazie

Commento di Anonimo (ip: 194.149.232.85), scritto il 02/02/2006 alle 10:09:01
Semplice, conciso, preciso

Commento di Anonimo (ip: 81.174.56.146), scritto il 27/04/2007 alle 14:46:12
aaaa

Commenta questa notizia:
Non hai ancora fatto il
Login, puoi inserire commenti solo come anonimo.
ATTENZIONE: il tuo IP verrà memorizzato e mostrato a fianco del commento; con la pressione del tasto invia commento si esprime il consenso alla pubblicazione di tale informazione personale.
A discrezione dello staff, i commenti ritenuti non adatti od offensivi potranno essere rimossi. Nel caso di utilizzo di espressioni volgari od offensive il comportamento verrà segnalato al provider interessato.
Se non ti sei ancora registrato, cosa aspetti? Registrati subito.

Da ora puoi discutere dei problemi informatici anche sul nostro FORUM

Testo del commento:




  News correlate

 Corso Java @ilsoftware.it
 Il linguaggio Java: lez.10/10
 Il linguaggio Java: lez.9
 Il linguaggio Java: lez.8
 Il linguaggio Java: lez.7
 Il linguaggio Java: lez.6
 Il linguaggio Java: lez.5
 Il linguaggio Java: lez.4


Domini Email SpazioWeb
a partire da € 9.99+IVA annui


  Ultime dal Forum

ciao forum!!!
Offertissima
per chi ha tanti contatti
Discount di codici!!!Prezzi da urlo! :o
DROP SHIP-DROP SHIPPING ITALIA
PTcassh nuova ptc paga entro 5 giorni
Il Migliore
Migliori PTC
Guadagnare fino a $0.02 guardando pubblicità

Comunicazioni / Note Legali / Staff / Collabora / Pubblicità / Contatti


Copyright ZETA TECH S.r.l. (P.IVA : 02387250307), tutti i diritti riservati Utenti Connessi: 590

Programmi


Pagina creata in 0.14sec. Powered by Zeta Tech S.r.l.

Stats v0.1 (0.000sec.)