Java SE programming
Descrizione
Java è sia un linguaggio di programmazione orientato agli oggetti che una piattaforma software sviluppata e pensata per essere indipendente nell’esecuzione dalla piattaforma Hardware su cui opera. I vantaggi sono la velocità di esecuzione ma soprattutto il fatto che l’esecuzione sia sempre la stessa indipendentemente dal device, dal software o dalla piattaforma utilizzata.
Target
Il corso è rivolto a coloro che vogliono acquisire le conoscenze fondamentali relative alla programmazione Java anche senza avere delle basi relative alla programmazione Object Oriented.
- Software Developer
 - Project Manager
 - System Administrator
 - Java EE Application Server Administrator
 - Team Leader
 - Technical Administrator
 - Technical Consultant
 - Web Administrator
 
Prerequisiti
Opzionalmente, potrebbe essere utile avere i rudimenti della programmazione ad oggetti
Programma Corso
Introduzione a Java
- Descrivere la tecnologia Java e lo sviluppo Java
 - Identificare le funzionalità chiave del linguaggio Java
 
I blocchi di costruzione dei programmi Java
- Scrivere il metodo main()
 - Utilizzare le variabili e gli operatori
 - Capire la struttura delle classi Java: campi, metodi e costruttori
 - Scrivere i commenti e la documentazione javadoc
 - Capire le package declaration e le istruzioni import
 - Dichiarare, istanziare e inizializzare gli oggetti
 - Lavorare con i riferimenti a oggetti
 - Utilizzare gli array
 - Capire la differenza fra tipi primitivi e tipi riferimento
 - Promozione e casting (conversione del tipo) delle variabili e degli oggetti
 - Come si distruggono gli oggetti, Garbage Collection automatico, il metodo finalize()
 
Operatori e costrutti di controllo del flusso
- Conoscere gli operatori e le istruzioni Java if-then, if-then-else, switch, while, do-while, for, for-each.
 - Cicli nidificati, etichette, istruzioni break e continue.
 
Principali API Java
- Il pacchetto java.lang, la classe Object.
 - Le classi Wrapper dei tipi semplici, autoboxing e unboxing.
 - La classe String.
 - Java Array e la classe ArrayList
 - Lavorare con le date e il tempo.
 
Lavorare con Java Arrays
- Dichiarare, istanziare, inizializzare e utilizzare una matrice unidimensionale
 - Dichiarare, creare un’istanza, inizializzare e utilizzare un array bidimensionale
 
Programmazione orientata agli oggetti – Incapsulamento e metodi
- Progettare i metodi: argomenti e valori restituiti
 - Metodi e variabili static
 - Passaggio degli argomenti ai metodi
 - Overloading dei metodi
 - Lavorare con i varargs
 - Costruttori parametrizzati
 - Incapsulamento dei dati, metodi get() e set(), modificatori di accesso public, protected, default, private
 
Programmazione orientata agli oggetti – Ereditarietà e polimorfismo
- Ereditarietà delle classi
 - Overriding dei metodi della superclasse
 - Polimorfismo
 - Creare ed estendere una classe astratta
 
Interfacce
- Il paradigma Design By Contract
 - Interfaccce: metodi di default
 - Interfacce: metodi static
 - Ereditarietà e polimorfismo con le interfacce
 
Eccezioni
- Principi della gestione delle eccezioni, blocchi try-catch-finally e try-with-resources
 - Gestire le eccezioni multiple.
 - Propagazione delle eccezioni, clausola throws ed istruzione throw
 - Capire i tipi comuni di eccezioni
 - Creare le eccezioni personalizzate.
 
Generics e Collections Framework
- Classi generiche e metodi generici
 - Le interfacce e le classi principali del Java Collections Framework
 
Elementi della programmazione funzionale
- Interfacce funzionali ed espressioni lambda
 - Collezioni, flussi (stream) e filtri
 - Le interfacce funzionali della libreria standard
 
Elementi della programmazione modulare
- Il sistema modulare
 - I JAR
 - Dichiarazione di moduli
 - JDK modulare