Linguaggio Java - Liv. intermedio/avanzato
Il corso è rivolto a Developer cha hanno già una conoscenza di livello base del linguaggio Java.
Alla fine del corso, i partecipanti avranno acquisito le competenze necessarie per sviluppare applicazioni Java di livello avanzato robuste e affidabili e anche solide basi per creare applicazioni orientate a oggetti e funzionali.
Le conoscenze acquisite sono adeguate per continuare percorsi formativi di specializzazione sulla tecnologia Java (sviluppi di software web ed Enterprise con Spring, API, …).
Caratteristiche avanzate del linguaggio Java
Revisione dei concetti fondamentali di Java
Java Bean
Upcasting e downcasting
Nuove caratteristiche del JDK 11 e del JDK 17
Java I/O
Date e Time API
HTTP Client
Generics
Java Collection: ArrayList, LinkedList, HashMap, TreeMap, Set, Queue, ...
Modularizzazione delle applicazioni Java
Programmazione Multithreading
Diffrenza fra applicazioni single-thread applicazioni multithread
Creazione e sincronizzazione dei Thread
Creazione di Virtual Thread
Differenze fra Thread e Virtual Thread
Creazione di connessioni a database con JDBC
Programmazione funzionale in Java
Introduzione alla programmazione funzionale
Interfacce funzionali
Funzioni lambda
Java Stream
Programmazione orientata a oggetti in Java
Classi annidate
Classi immutabili
Costruttori privati
Classi astratte e interfacce
Ridefinizione di metodi
Overloading di metodi
Polimorfismo
Delegazione come alternativa all'ereditarietà
Implementazione dei princìpi SOLID in Java
Principio della singola responsabilità
Principio aperto/chiuso
Principio di sostituzione di Liskov
Principio di segregazione delle interfacce
Principio di inversione delle dipendenze
Labs
Esercitazioni pratiche sui costrutti e le librerie standard del linguaggio Java
Esercitazioni pratiche sulla programmazione funzionale
Esercitazioni pratiche sulla programmazione orientata a oggetti e sui princìpi SOLID
Durata
35 ore
Obiettivi
Sviluppare le conoscenze avanzate sull'utilizzo del linguaggio Java
Prerequisiti
Conoscenze della programmazione in Java a livello base