Caricamento...
OEO041

Programmazione Java SE 8 avanzato

Prezzo

€ 1,750.00
(Iva esclusa)

Scheda tecnica

Scarica

Giorni

5 gg

Questo corso copre le caratteristiche essenziali del linguaggio Java SE 8 e delle sue API - Application Program Interfaces, che vengono utilizzate per la progettazione e costruzione delle applicazioni Object Oriented con la piattaforma Java Standard Edition 8. In questo corso si impara a creare le applicazioni object-oriented con l’ultima tecnologia JDK seguendo le migliori pratiche del linguaggio. Questo corso è propedeutico alla preparazione all’esame Oracle Certified Professional, Java SE 8 Programmer.

Le competenze acquisite includono:

  • Progettare correttamente le classi Java
  • Utilizzare le espressioni lambda nelle applicazioni Java seguendo il paradigma della programmazione funzionale
  • Utilizzare il Java Collections Framework
  • Gestire file, directory e file system.
  • Connetersi ai database relazionali e utilizzare i tre tipi fondamentali di query SQL con la tecnologia JDBC.
  • Scrivere le applicazioni multi-threaded ad alte prestazioni.
Il corso è rivolto a sviluppatori Java

Conoscenza base del linguaggio Java SE 8.

 

Progettazione avanzata delle classi

  • Revisione dei concetti Oracle Certified Associate
  • Modificatori d’accesso
  • Overloading e Overriding 
  • Classi astratte
  • Static e Final 
  • Gli Import 
  • Utilizzo di instanceof 
  • Capire invocazione dei metodi virtuali
  • Annotare i metodi sovrascritti
  • Sovrascrivere equals, hashCode, e toString 
  • Lavorare con le Enums 
  • Utilizzare Enums nelle istruzioni Switch 
  • Aggiungere costruttori, campi e metodi ad una classe
  • Creare le classi innestate
  • Classi-membri interne
  • Classi interne locali
  • Classi interne anonime
  • Classi innestate static

Utilizzare i Design Patterns

  • Progettare un’interfaccia, obiettivi
  • Introduzione alla programmazione funzionale
  • Definire un’interfaccia funzionale
  • Implementare le interfacce funzionali con le espressioni lambda
  • Applicare l’interfaccia Predicate
  • Implementare il polimorfismo
  • Differenza fra un oggetto e un riferimento
  • Conversione del tipo (casting) di riferimenti a oggetti
  • Capire i principi di progettazione
  • Incapsulare i dati
  • Creare i JavaBean
  • Applicare una relazione e-un (is-a)
  • Applicare la relazione ha-un (has-a)
  • Composizione degli oggetti
  • Lavorare con i Design Pattern
  • Applicare il pattern Singleton
  • Creare gli oggetti immutabili
  • Utilizzare il pattern Builder
  • Creare gli oggetti con il pattern Factory
  • Generics e Collections 
  • Array e ArrayList 
  • Ordinamento e ricerca
  • Classi Wrapper, autoboxing e unboxing
  • L’operatore diamante (diamond operator)
  • Lavorare con i generics: classi, interfacce e metodi generici
  • Interagire con il codice legacy
  • I limiti (bounds)
  • Utilizzare le interfacce List, Set, Map e Queue
  • Metodi comuni della classe Collections
  • Confronto fra vari tipi di collezioni
  • Comparator vs. Comparable 
  • Utilizzare i riferimenti ai metodi
  • Rimozione condizionale
  • Aggiornare tutti gli elementi
  • Iterare sulle collezioni

Programmazione funzionale

  • Utilizzare variabili nelle espressioni lambda
  • Lavorare con le interfacce funzionali incorporate
  • Implementare Supplier 
  • Implementare Consumer and BiConsumer 
  • Implementare Predicate and BiPredicate 
  • Implementare Function and BiFunction 
  • Implementare UnaryOperator and BinaryOperator 
  • Verificare le interfacce funzionali
  • Restituire Optional
  • Utilizzare i flussi (stream)
  • Creare le sorgenti dei flussi
  • Utilizzare le operazioni comuni sul terminale
  • Utilizzare le operazioni comuni intermedie
  • Collegare i pipeline
  • Stampare un flusso
  • Creare i flussi primitivi
  • Lavorare con i flussi Pipeline
  • Collegare i flussi ai dati sottostanti
  • Concatenare gli Optional
  • Raggruppare i risultati

Eccezioni e asserzioni

  • Revisione delle eccezioni
  • Terminologia delle eccezioni
  • Categorie delle eccezioni
  • Istruzione try
  • Throw vs. Throws 
  • Creare le eccezioni personalizzate
  • Catturare le eccezioni multiple
  • Utilizzare try-with-resources
  • AutoCloseable 
  • Le eccezioni soppresse
  • Rilanciare le eccezioni
  • Istruzione assert
  • Abilitare e usare le asserzioni

Esecuzione concorrenziale

  • Introduzione ai thread
  • Distinguere fra i tipi di thread
  • Capire la concorrenza dei thread
  • Utilizzare la classe Thread e l’interfaccia Runnable
  • Il metodo sleep()
  • Creare i thread con ExecutorService
  • Introduzione al Single-Thread Executor
  • Chiudere un Thread Executor 
  • Sottoporre i task, aspettare i risultati, schedulare i task
  • Potenziare la concorrenza con i pool
  • Sincronizzare l’accesso ai dati
  • Proteggere i dati con le classi atomiche
  • Migliorare l’accesso con i blocchi sincronizzati
  • Sincronizzazione dei metodi
  • Capire il costo della sincronizzazione
  • Utilizzare le collezioni concorrenti
  • Capire gli errori di consistenza della memoria
  • Lavorare con le classi concorrenti
  • Ottenete le collezioni sincronizzate
  • Lavorare con i flussi (stream) paralleli
  • Gestire i processi concorrenti
  • Creare un CyclicBarrier
  • Applicare il Fork/Join Framework 
  • Identificare i problemi di threading
  • Capire liveness
  • Gestire le condizioni di competizione (race conditions)

IO

  • Capire file e directory
  • Concetti di File System
  • Classe File
  • Introduzione ai flussi, tipi di flussi
  • Operazioni comuni sui flussi
  • Lavorare con i flussi
  • Le classi FileInputStream e FileOutputStream 
  • Le classi FileReader e FileWriter classes 
  • Le classi ObjectInputStream e ObjectOutputStream 
  • Le classi PrintStream e PrintWriter
  • Interazione con l’utente: vecchio e nuovo stile

NIO.2

  • Introduzione a NIO.2 
  • Introduzione a Path 
  • Creare i Path 
  • Interagire con i Path e File
  • Fornire argomenti opzionali
  • Utilizzare gli oggetti Path
  • Capire gli attributi dei file
  • Migliorare l’accesso con le View
  • Nuovi metodi di Stream
  • Attraversare una directory
  • Fare la ricerca in una directory
  • Visualizzare il contenuto di una directory
  • Stampare il contenuto di un file
  • Confronto fra i metodi File obsoleti e NIO.2

 JDBC

  • Introduzione ai database relazionali e SQL
  • Scrivere le istruzioni SQL di base
  • Introduzione alle interfacce JDBC
  • Connettersi ad un database
  • Costruire database URL
  • Ottenere un oggetto Statement
  • Scegliere il tipo di ResultSet e il modo di accesso concorrenziale
  • Eseguire uno Statement
  • Recuperare i dati da un ResultSet
  • Chiudere le risorse JDBC
  • Gestire le eccezioni JDBC


Sede Data P
Bologna 25/06/2018
Roma 23/07/2018
Milano 17/09/2018
Bologna 05/11/2018
Roma 10/12/2018