Dispense
Le dispense sono in lavorazione e escono durante il corso, una per argomento. Non sostiuiscono libri o appunti ma vogliono essere un supporto in più per lo studio. E' la prima edizione delle dispense, quindi se trovate errori segnalateli! (prima però verificate che siano effettivamente errori) Le dispense sono distribuite gratuitamente con licenza CC BY-NC-SA 4.0.
-
D01
Oggetti, riferimenti, ereditarietà, record, interfacce, enumerazioni, collezioni e risorse
Il ripasso da cui parte il corso: dal sorgente all'esecuzione, oggetti e riferimenti, ereditarietà e tipo dinamico, equals e hashCode, i record, interfacce, enumerazioni, collezioni, try-with-resources e lettura di file di testo e binari.
Versione 0.1.1 · aggiornata il 25 ottobre 2026
-
D02
Classi anonime, lambda expression, method reference e interfacce funzionali
Come si passa dalla classe usa-e-getta alla funzione passata come argomento: classi anonime e variabili catturate, interfacce funzionali, lambda expression, method reference e il catalogo di java.util.function.
Versione 0.1 · aggiornata il 23 settembre 2026
-
D02b
Contratti, metodi default e static, gerarchie sealed e switch sui tipi
Le interfacce oltre il contratto: classi astratte a confronto, Comparable e Comparator, metodi default con le regole di risoluzione, static e private, gerarchie sealed e switch sui tipi con verifica di esaustività.
Versione 0.1 · aggiornata il 27 settembre 2026
-
D03
Pipeline, laziness, ordine di valutazione, collettori e l'anatomia della libreria
Le pipeline di java.util.stream: sorgenti, operazioni intermedie e terminali, laziness, elaborazione verticale, short-circuit e barriere; stream primitivi, Optional, collect, groupingBy, reduce e flatMap. In chiusura l'anatomia della libreria (spliterator, stadi, sink, bandiere) e che cosa costa davvero.
Versione 0.1 · aggiornata il 1 ottobre 2026
-
D04
Dal processo alla JVM, executor, stato condiviso, la coda degli eventi di Swing e i thread virtuali
Un libro in dieci capitoli che parte da una finestra che congela: processi e thread nel sistema operativo e nella JVM, Runnable e Thread, executor, Callable e Future con le misure sui numeri primi; conflitti, synchronized, lock, atomiche e collezioni concorrenti; compiti periodici, stream paralleli e thread virtuali; la coda degli eventi di Swing, invokeLater e SwingWorker. Palestra con nove problemi e le soluzioni nel repository pajc-soluzioni.
Versione 0.2 · aggiornata il 11 ottobre 2026
-
D05
Componenti e layout, eventi, finestre di dialogo, grafica con le primitive, Graphics2D, coordinate, mouse e animazioni
Un libro che parte da una lavagna da disegno che si rompe: finestre, componenti e layout annidati, eventi, modelli e renderer, le finestre di dialogo di sistema e quelle scritte da noi, paintComponent e le primitive di Graphics, forme, tratti e colori di Graphics2D, coordinate e trasformazioni, mouse, tastiera e animazioni con javax.swing.Timer. Palestra con otto problemi.
Versione 0.1.4 · aggiornata il 27 ottobre 2026
-
D06
Socket e TCP in Java, protocolli di testo, un server per molti client, il client con la finestra, byte, oggetti e datagrammi
Un libro che parte da una chat per l'aula che non regge: la rete vista da un programma, Socket e ServerSocket con gli stream, un protocollo di testo scritto come tabella di comandi e provato senza rete, un server per molti client con thread virtuali e stato condiviso, il client Swing con il thread lettore e l'EDT, cornici binarie, serializzazione, datagrammi UDP e HttpClient. Palestra con otto problemi e le soluzioni nel repository pajc-soluzioni.
Versione 0.2 · aggiornata il 5 novembre 2026