Metodologie di Programmazione: Lezioni
Arrays
. Argomenti dalla linea di comando. Numero variabile di parametri. Errori ed eccezioni (prima parte): catturare eccezioni con try-catch
. Esempi. Esercizi.throw
. Esempi. Esercizi.extends
, polimorfismo. Super-classe/sotto-classe, super-tipo/sotto-tipo. Costruttori e super
. Ridefinire, @Override
, dynamic binding. Cast e instanceof
. final
applicato a metodi e classi. Sotto-tipi e array. La classe Object
: metodi equals
e toString
. Esempi. Esercizi.abstract
: metodi astratti, modificatore protected
. Design patterns: Template. Interfacce interface
: implements
, contratto, metodi di default
. Esempi. Esercizi.Comparable<T>
. Esempi. Esercizi.Collection<E>
, List<E>
, Set<E>
, Map<E>
. Tabelle hash e il metodo hashCode
. Rappresentazione di alberi tramite mappe. Genericità (seconda parte): wildcard, limitazioni extends
e super
. Esempi. Esercizi.Path
, informazioni circa file e directory. Errori ed eccezioni (terza parte): checked exception, gerarchia delle eccezioni, try-with-resources. Lettura di file di testo: la classe Files
in java.nio.file
. Scrittura di testo in file: principali metodi. Lettura e scrittura di bytes in file. Esempi. Esercizi.Stream
e le loro operazioni: operazioni intermedie e terminali. Pipeline e programmazione stile dichiarativo. Il tipo Optional
: motivazioni e uso. Le principali operazioni sui flussi e i collettori in Collectors
. Esempi. Esercizi.Thread
, creazione, stati della vita di un thread Thread.State
, thread corrente Thread.currentThread()
, interruzione di un thread interrupt
e "addormentamento" Thread.sleep
. Uso di thread per la reattività di un'applicazione. Informazioni sui thread attivi: daemon threads, Thread.getAllStackTraces()
. Esempi. Esercizi.java.net
, downloading di una pagina web. Cenni su espressioni regolari: Pattern
e Matcher
. Computazioni asincrone: ExecutorService
, Future
, Executors
. Esecuzioni multithreading per interrogare servizi web. Esempi. Esercizi.synchronized
, variabili atomiche, visibilità e volatile
. Strategie per thread safety: dati condivisi, confinamento, immutabilità e lock. Esempi. Esercizi.ExecutorService
per eseguire molti task: CachedThreadPool
e WorkStealingPool
. Ridurre le dipendenze tra task. Uso di ExecutorCompletionService
e LongAdder
. Design pattern produttore-esecutore: code sincronizzate ConcurrentLinkedQueue
. Uso del framework Fork-Join. Esempi. Esercizi.Stage
, Scene
, scene graph. Controlli e layout: Group
, VBox
, HBox
, Button
, Slider
, ComboBox
. Gestione degli eventi: handler e listener. Esempi. Esercizi.WebView
, WebEngine
, ContextMenu
, MenuItem
. Proprietà e binding. Task asincroni: Worker
. Icone e risorse. Esercizi.Worker
, Task
, Service
. Esecuzione asincrona sul JavaFX Application Thread: Platform.runLater
. Monitorare il progresso di un task: ProgressIndicator
. Cancellare un task. Esercizi.Canvas
. Generazione labirinti.wait
-notify
, esecuzioni periodiche con Timeline
. Loading di class file: URLClassLoader
.Class
, Method
, Constructor
, Field
, Parameter
. Trattamento dei tipi: Type
, ParameterizedType
. Esempi. Esercizi.23 Mag 2016