Introduzione
F
in dal rilascio del Java Development Kit originale
nel maggio del 1995, il team di progettazione di Sun Microsystems lavora
molto per migliorare la piattaforma Java. La pubblicazione di questa edizione
coincide con il rilascio della Versione 6 della Java Platform Standard Edition
(Java SE) e riflette le API di tale release.
Questa edizione introduce nuove funzioni aggiunte alla piattaforma Java
dalla pubblicazione della terza edizione (per la versione 1.3), quali un capitolo
sui generici e informazioni sulle annotazioni. Sono presenti nuovi capitoli
su Java Web Start, l’ambiente di piattaforma e le espressioni regolari. Molti
capitoli, quali “Concorrenza” (in precedenza “Thread”), “I/O”, “Fondamenti
di programmazione a oggetti” e “Fondamenti del linguaggio” sono stati completamente riscritti. “Collection” è stato eliminato dall’appendice e inserito in
un capitolo. Una nuova appendice contiene informazioni su come prepararsi
all’esame di certificazione per il linguaggio Java.
Tutto il materiale è stato attentamente revisionato dai membri del team di
progettazione per garantire che le informazioni siano precise e aggiornate.
Come le edizioni precedenti, il presente volume è basato sul tutorial online
situato nel sito Web di Sun Microsystems:
http://java.sun.com/docs/books/tutorial/
Le informazioni nel presente volume, spesso indicate come “tutorial principale” o “fondamenti”, sono necessarie a molti programmatori principianti o
intermedi. Acquisita la padronanza del materiale contenuto nel presente volume
è possibile esplorare il resto della piattaforma Java sul sito Web.
Come sempre, l’obiettivo è la creazione di una guida pratica per il programmatore facile da leggere, con molti esempi per l’apprendimento della
programmazione.
java.indb XXV
22/01/2007 8.27.53
XXVI I N T R O D U Z I O N E
A chi è rivolto il presente volume
Questo libro è rivolto a programmatori principianti ed esperti.
I nuovi programmatori possono sfruttare la lettura dall’inizio alla fine,
con le istruzioni passo per passo per la compilazione e l’esecuzione del primo
programma presentato nel Capitolo 1.
I programmatori esperti in linguaggi procedurali quale C++ possono
desiderare di iniziare dai fondamenti della programmazione a oggetti e dalle
caratteristiche del linguaggio di programmazione Java.
I programmatori esperti possono desiderare di passare immediatamente
agli argomenti avanzati quali generici, concorrenza o Java Web Start.
Il libro contiene informazioni per le necessità di apprendimento di programmatori con diversi livelli di esperienza.
Come utilizzare il presente volume
Il libro è pensato in modo da poter essere letto di seguito o per argomenti. Le
informazioni sono presentate in ordine logico e dove possibile sono evitati i
riferimenti a capitoli successivi.
Gli esempi nel presente tutorial sono realizzati per la versione 6.0. È necessario scaricare tale versione per compilare ed eseguire la maggior parte
degli esempi.
Il CD allegato contiene i contenuti del presente volume (compresi esempi
e soluzioni e risposte alle domande e agli esercizi), oltre che i tutorial Java
SE solo online, una prima versione 6.0 del Java SE Development Kit (JDK),
la specifica API corrispondente e la documentazione di guida.
Nel libro sono presenti note a piè di pagina come quella indicata di seguito:
docs/api/java/lang/Class.html
e
tutorial/deployment/applet/examples/TalkServer.java
Il livello più alto del CD contiene directory docs e tutorial, quindi le note
possono essere individuate nel CD secondo quanto specificato. Per trovare
le pagine più recenti online, aggiungere http://java.sun.com/javase/6/ prima
delle note con docs e http://java.sun.com/docs/books/ prima delle note con
tutorial:
http://java.sun.com/javase/6/docs/api/java/lang/Class.html
java.indb XXVI
22/01/2007 8.27.53
INTRODUZIONE
XXVII
http://java.sun.com/docs/books/tutorial/deployment/applet/examples/
TalkServer.java
I capitoli del libro si trovano nel CD nelle seguenti posizioni:
Capitolo
Posizione
1. Per iniziare
tutorial/getStarted
2. Fondamenti di programmazione
a oggetti
tutorial/java/concepts
3. Fondamenti del linguaggio
tutorial/java/nutsandbolts
4. Classi e oggetti
tutorial/java/javaOO
5. Interfacce ed eredità
tutorial/java/IandI
6. Generici
tutorial/java/generics
7. Package
tutorial/java/package
8. Numeri e stringhe
tutorial/java/data
9. Eccezioni
tutorial/essential/exceptions
10. Fondamenti di I/O
tutorial/essential/io
11. Collection
tutorial/collections
12. Concorrenza
tutorial/essential/concurrency
13. Espressioni regolari
tutorial/essential/regex
14. L’ambiente di piattaforma
tutorial/essential/environment
15. Swing
tutorial/ui
16. Inserimento di programmi
in file JAR
tutorial/deployment/jar
17. Java Web Start
tutorial/deployment/webstart
18. Applet
tutorial/deployment/applet
Il feedback relativo alla presente edizione è benvenuto. Utilizzare il modulo
di feedback del Tutorial:
http://developers.sun.com/contact/tutorial_feedback.jsp
Ringraziamenti
Molti lettori su Internet ci hanno aiutato a mantenere e migliorare la qualità
del tutorial inviando e-mail e segnalando errori, collegamenti interrotti e
aree del tutorial che causavano confusione o che potevano trarre vantaggio
da una revisione.
Molti membri attuali e passati dei team di ingegnerizzazione e di documentazione Java Software ci hanno fornito consigli, hanno risposto alle nostre
molte domande, hanno revisionato il materiale e hanno anche contribuito ad
esso. L’elenco è lungo, ma desideriamo segnalare in particolare i contributi di
Eric Armstrong, David Bristor, Martin Buchholz, Mandy Chung, Iris Garcia
java.indb XXVII
22/01/2007 8.27.53
XXVIII
INTRODUZIONE
Clark, Margarita Fischer, Amy Fowler, Andy Herrick, Shannon Hickey, David Holmes, Jim Holmlund, Patrick Keegan, Peter Korn, Masayoshi Okutsu,
Scott Seligman, Xueming Shen, Sundar Sivasubramanian, Pete Soper, Scott
Violet e Kathy Walrath. Siamo anche grati agli scrittori e ai programmatori
di talento di Sun che hanno contribuito al tutorial online.
Desideriamo ringraziare il nostro ex collega, Joshua Bloch, l’autore originale del capitolo “Collection” che ha trovato il tempo per fornirci informazioni
aggiornate. Grazie anche ai nostri revisori esterni e sostenitori di lunga data,
Doug Lea e Brian Goetz.
Debra Scott, il nostro manager, ci ha incoraggiato e ci ha fornito il supporto
necessario al nostro lavoro e alla sua realizzazione in tempo.
I nostri program manager, Mary Lautner e Ian Hardie, hanno controllato
le pianificazioni, hanno evitato interferenze e ci hanno fornito supporto.
Gli illustratori Michael Quillman e Dwayne Wolff hanno creato le grafiche
professionali in modo veloce ed efficiente.
Ringraziamo inoltre i membri del team SQE che hanno fornito prezioso
feedback.
Infine ringraziamo i manager in Java SE per avere concesso ai loro ingegneri e illustratori il tempo da dedicare a questo lavoro e in particolare: Uday
Dhanikonda, Frances Ho, James Hsieh, Janet Koenig e Keith Yarwood.
Note sugli autori
Sharon Zakhour, responsabile del team Tutorial, lavora in Sun Microsystems come technical writer senior da sette anni. Ha contribuito a “The JFC
Swing Tutorial, Second Edition” e ha lavorato molti anni con i team Swing
e AWT. Si è laureata alla UC Berkeley con un B.A. in scienze informatiche
e lavora come programmer developer support engineer e technical writer da
oltre vent’anni.
Scott Hommel è un technical writer on staff in Sun Microsystems, dove
documenta la piattaforma Java, Standard Edition. Dal 1999 ha contribuito
a tutte le versioni principali del JDK, prevalentemente con chiarimenti alla
specifica API e documentazione alla versione principale. Attualmente lavora
da casa nelle verdi montagne di Killington, Vermont.
Jacob Royal ha un master in IT e un MBA in sistemi informatici. Ha scritto
guide per gli amministratori, riferimenti API e guide per i programmatori e ha
identificato nuovi strumenti e sviluppato standard per il codice e la scrittura per
diverse società, tra cui Lucent Technologies e Autodesk. Contribuisce inoltre
alla specifica JSR APT e alle guide all’implementazione di Java in Sun.
Isaac Rabinovitch è un technical writer freelance. Ha scritto manuali per
utenti, guide per programmatori, manuali per amministratori, riferimenti API,
release note e documentazione di supporto in Sun Microsystems, Borland, SGI
e molte altre aziende. Ama le banalità tecniche e gioca con i computer da più
tempo di quanto osi immaginare.
java.indb XXVIII
22/01/2007 8.27.53
INTRODUZIONE
XXIX
Thomas Risser ha studiato fisica ad Harvard (B.A.) e alla University of
California a Berkeley (Ph.D.). È technical writer nell’industria informatica
da quindici anni.
Mark Hoeber è stato technical writer senior di Sun Microsystems. Lavora
come technical writer da dodici anni e si concentra sulla documentazione
per gli sviluppatori software e gli amministratori di sistema. Inoltre Mark
ha lavorato all’implementazione di sistemi per la gestione di contenuti per i
team di scrittori tecnici.
java.indb XXIX
22/01/2007 8.27.53