mercoledì 2 giugno 2021

Lezione del 28/05/2021: altri design pattern + chisura del corso!

I pattern Command/Callback, Decorator. Esercizi sui pattern. Riassunto dei design pattern. Consigli per il futuro. Conclusione del corso!

Lezione del 25/05/2021 (3 ore): i primi design pattern

 I primi design pattern: strategy, factory, observer, builder e singoletto.

venerdì 21 maggio 2021

Lezione del 21/05/2021 (2.5 ore): introduzione a input/output; reflection; moduli in Java.

Input & output: gli oggetti System.out e System.in. InputStream, PrintStream e la classe Scanner. File di testo e file binari. Gli stream. Gerarchie di classi stream. Leggere e scrivere un file di testo: la classe java.io.File. BufferedReader/FileReader, BufferedWriter/FileWriter. Leggere e scrivere un file di testo formattato: le classi Formatter e Scanner. Il package java.nio: Path, Paths e Files. Serializzare e deserializzare un oggetto. L'interfaccia Serializable e il serialVersionUID. La parola chiave transient. La reflection, la classe Class, istanziare e ispezionare una classe a tempo di esecuzione. 

I moduli in Java. Moduli senza nome. Moduli automatici.


 

giovedì 20 maggio 2021

venerdì 14 maggio 2021

Lezione del 14/05/2021 (1 ora): ancora sui generici (2/2)

Sicurezza dei generici a tempo di compilazione: confronto con gli array. Jolly come tipi generici. Esempio: metodo generico di somma. Cancellazione del tipo (type erasure). Esempio: cancellazione del tipo nella classe Coppia e nel metodo getMassimo. Esercizio: cancellazione del tipo nella classe Pila.

Lab del 12/05/2021 (3 ore): esercizi sugli stream

 Esercizi sugli stream

Lezione dell'11/05/2021 (3 ore): introduzione ai generici (1/2)

Tipi generici. Definire e utilizzare una classe generica. Specificare più tipi generici. Estendere le classi generiche. Esercizio: inverti lista generica. Generici e collezioni: interfacce generiche prototipiche. Definire un metodo generico. Calcolare il massimo di una collezione di elementi di tipo generico.


lunedì 10 maggio 2021

Lezione del 07/05/2021 (2 ore): ancora sugli stream

Collectors: counting, maxBy/minBy, summingInt, averagingInt, joining, toList, toSet. toCollection, mapping, groupingBy, partioningBy. Operazioni su IntStream, DoubleStream, LongStream e passaggio da uno stream all'altro.

giovedì 6 maggio 2021

Lab del 05/05/2021 (1 ora + esercizi e domande): esercizi sugli stream

Esercizi sugli stream.


Lezione del 04/05/2021 (2 ore): eccezioni e stream

Ancora sulle eccezioni.

La classe Optional. Gli stream: definizione; caratteristiche; operazioni intermedie e terminali. Metodi principali dell'interfaccia java.util.stream.Stream. Comportamento "pigro" (lazy) degli stream. Operazioni senza stato e con stato. Stream ottimizzati per i tipi primitivi: IntStream, DoubleStream e LongStream. Come ottenere uno stream: da elenco di valori, da una Collection, da un array, da un file. Il pattern Builder, la sua importanza nel paradigma orientato agli oggetti e il suo uso negli stream mediante operazioni intermedie e terminali. Operazioni intermedie e terminali degli stream.