Questo manuale, reperibile anche in versione e-book a prezzo leggermente ridotto, si propone come una
guida completa e aggiornata per il lettore italiano, che voglia imparare a usare in modo corretto ed efficace l'ultima versione degli strumenti di sviluppo Java. Non si tratta di una guida per
absolute beginner, anche se lo stile essenziale la rende adatta a chi preferisce mettere subito in pratica quanto apprende nel testo, grazie anche all'aiuto del materiale presente nella
pagina web del libro, che permette di scaricare il codice sorgente relativo agli esempi proposti.
Dopo un
primo capitolo introduttivo sul linguaggio, la sua storia e gli strumenti necessari al suo utilizzo, dove viene compilato ed eseguito dalla shell il primo programma Java, nel
secondo si parla di costanti, letterali e tipi di dato, e già nel
terzo vengono discussi gli array mono e multidimensionali.
Il
quarto capitolo mostra gli operatori che Java mette a disposizione per manipolare i dati, partendo dai più semplici assegnamenti per concludere con gli operatori a livello di bit, e con una tabella riassuntiva delle precedenze tra operatori. Il
quinto capitolo è dedicato alle strutture di controllo, mentre nel
sesto vengono discussi i metodi, argomento che curiosamente viene prima della panoramica sugli oggetti, rinviata al
settimo capitolo. Il motivo di questa scelta è spiegato brevemente nella premessa che apre libro.
L'
ottavo capitolo sviluppa l'argomento OOP mostrando, dapprima sotto forma di schemi e poi come codice Java, l'uso dell'ereditarietà; tra gli altri argomenti troviamo interfacce, classi anonime e classi astratte. Il
nono capitolo è dedicato alla programmazione generica e quindi all'uso dei tipi parametrizzati, delle classi generiche e dei tipi
raw.
Il
decimo capitolo è dedicato agli errori software, e si apre con una breve sezione dedicata alle asserzioni prima di procedere con le eccezioni. Il
capitolo undici spiega cosa sono e come si usano i package per creare librerie di tipi, ma anche per la distribuzione di programmi, il tutto ancora una volta con l'uso della riga di comando.
Il
dodicesimo capitolo fa riferimento alle specifiche contenute nella JSR 175 che riguarda le annotazioni, metadati che il programmi esterni oppure il compilatore possono utilizzare, mentre il
tredicesimo capitolo riguarda la documentazione, partendo da esempi di corretto uso per concludere con la generazione automatica con il comando
javadoc.
Nel
capitolo quattordici si parla di caratteri e stringhe, con numerosi esempi d'uso dei metodi dei tipi
String e
StringBuilder, quest'ultimo contenente stringhe modificabili; il capitolo si conclude con un esempio d'uso di
StringTokenizer. Il
quindicesimo capitolo riguarda invece le espressioni regolari anche utilizzando le classi
Pattern e
Matcher.
Il
capitolo sedici analizza le collezioni, in particolare le interfacce
Collection,
Set,
SortedSet,
List,
Queue,
Deque,
Map,
NavigableMap,
Comparable e
Comparator,
Iterator,
ListIterator e
Iterable. Con il capitolo successivo ci si affaccia alla programmazione concorrente prendendo in considerazione la classe
Thread, l'interfaccia
Runnable, la sincronizzazione, e l'uso delle API di alto livello, preceduta da alcuni esempi di situazioni critiche come
starvation,
deadlock e
livelock.
Il
capitolo diciotto è dedicato alla scrittura e lettura dei file, o più in generale degli stream; una decina di pagine in questo capitolo sono riservate alle nuove API per l'input e l'output NIO.2. Il
diciannovesimo capitolo è decisamente il più lungo di questo manuale ed è dedicato alla programmazione delle
interfacce grafiche Swing, partendo dai container per poi proseguire con i layout manager, i controlli grafici d'interfaccia, le barre di menu e, infine, la gestione degli eventi. In conclusione vengono presentate le
API JDIC e l'integrazione col desktop, l'uso dello
splash screen, e la concorrenza in Swing.
Il
ventesimo capitolo ci porta in rete trattando, dopo un'introduzione sui concetti basilari come protocolli TCP e UDP, classificazione delle reti, modello ISO/OSI, DNS eccetera, l'accesso alle interfacce di rete, l'utilizzo degli URL, dei socket e dei datagrammi descrivendo ed esemplificando le rispettive API.
Anche il
ventunesimo capitolo si presenta abbastanza corposo, circa una cinquantina di pagine, pari a circa un terzo di quello sulle interfacce grafiche; si esaminano qui i database, partendo da alcuni concetti di base e terminologici, per poi spiegare cosa sono e come si usano SQL, le connessioni JDBC e i relativi risultati come navigazione nei
resulset,
statement,
prepared statement e
callable statement.
L'
ultimo capitolo del libro, prima delle appendici, riguarda la programmazione web effettuata utilizzando
Java Enterprise Edition, e quindi
Servlet,
Java Server Pages, JSTL e
JavaServer Faces. Le tre
appendici che chiudono il libro riguardano l'installazione e configurazione di Java 7, di JEE, di MySQL e di NetBeans; l'ultima appendice è una veloce carrellata di circa sei pagine sulle
applet.