Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Introduzione
Organizzazione del libro Struttura del libro e convenzioni Codice sorgente e progetti Compilare ed eseguire direttamente i listati e gli snippet di codice Compilare ed eseguire con gli IDE i listati e gli snippet di codice
Parte I - Concetti e costrutti fondamentali Capitolo 1 - Introduzione al linguaggio
Cenni sull’architettura di un elaboratore
Il modello di von Neumann La CPU La memoria centrale
Ordinamento dei byte
Paradigmi di programmazione Concetti introduttivi allo sviluppo in Java
Fasi di sviluppo di un programma in Java
Elementi di un ambiente Java Il primo programma in Java
Un “assaggio” dei metodi printf, println e print Elementi strutturali di un programma in Java
Compilazione ed esecuzione del codice La Java Virtual Machine: un breve dettaglio
Capitolo 2 - Variabili, costanti, letterali e tipi
Variabili
Dichiarazione Inizializzazione
Costanti Tipi di dato fondamentali o primitivi
Tipi interi
Letterali interi
Tipi in virgola mobile
Letterali in virgola mobile
Tipi carattere
Letterali carattere
Tipi booleani
Letterali booleani
Categorizzazione completa dei tipi Wrapper class Autoboxing e auto-unboxing Caratteristiche fondamentali dei tipi primitivi
Tipi riferimento Tipo nullo Dimensione dei tipi di dato Conversioni di tipo
Conversioni implicite Promozioni numeriche Conversioni esplicite
Variabili locali, “globali” e scope Categorizzazione delle variabili
Valori di default delle variabili
Capitolo 3 - Array
Array monodimensionali
Dichiarazione Inizializzazione Subscripting
Array multidimensionali
Array bidimensionali
Dichiarazione Inizializzazione Subscripting
Array tridimensionali
Dichiarazione Inizializzazione Subscripting
Costanti di tipo array
Capitolo 4 - Operatori
Operatore di assegnamento semplice Operatori aritmetici
Operatore di addizione Operatore di sottrazione Operatore di moltiplicazione Operatore di divisione Operatore modulo
Operatori unari più e meno Operatori unari di incremento e decremento
Operatore postfisso di incremento e decremento Operatore prefisso di incremento e decremento
Operatori relazionali
Operatore maggiore di Operatore maggiore di o uguale a Operatore minore di Operatore minore di o uguale a
Operatori di uguaglianza
Operatore uguale a Operatore non uguale a
Operatori logici
Operatore AND logico condizionale Operatore OR logico condizionale Operatore NOT logico
Operatore condizionale Operatori bit per bit e operatori logici booleani
Operatore di complemento bit per bit Operatore AND bit per bit Operatore OR bit per bit inclusivo Operatore OR bit per bit esclusivo Operatore di scorrimento a sinistra bit per bit Operatore di scorrimento a destra bit per bit con segno Operatore di scorrimento a destra bit per bit senza segno Comuni casi di utilizzo
Impostazione di singoli bit Cancellazione di singoli bit Verifica di un bit Commutazione di singoli bit Estrazione di singoli bit
Operatori di assegnamento composti Tabella di precedenza degli operatori
Capitolo 5 - Istruzioni e strutture di controllo
Istruzioni di selezione
Istruzione di selezione singola if Istruzione di selezione doppia if/else Istruzione di selezione multipla switch
Istruzioni di iterazione
Istruzione di iterazione while Istruzione di iterazione do/while Istruzione di iterazione for
for “migliorato”
Istruzioni di salto
Istruzione break
Istruzioni etichettate
Istruzione continue
Istruzioni etichettate
Istruzione return Istruzione throw
Istruzioni ulteriori
Istruzione assert Istruzione synchronized Istruzione try
Capitolo 6 - Metodi
Dichiarazione di un metodo Utilizzo di un metodo Parametri di un metodo: dettaglio Argomenti di lunghezza variabile Conversione, promozione e ordine di valutazione degli argomenti Parametri di tipo array
Parametri come array monodimensionali Parametri come array multidimensionali
L’istruzione return: dettaglio Ricorsione La funzione main: nozioni conclusive
Elaborare gli argomenti dalla riga di comando Elaborare il codice di terminazione di un programma
Overloading dei metodi
Parte II - Paradigmi, stili di programmazione e gestione degli errori Capitolo 7 - Programmazione basata sugli oggetti
Classi
Costruttori di istanza Finalizzatori di istanza La keyword this Visibilità e controllo di accesso Metodi get e set Membri statici
Campi statici Metodi statici
Inizializzatori statici Membri costanti Oggetti come elementi di array Oggetti come membri di una classe Oggetti come parametri Classi interne
Classi annidate Classi locali Classi anonime
Enumerazioni
Costanti di enumerazione Il body di un’enumerazione Esempi pratici Il tipo Enum<E>
Capitolo 8 - Programmazione orientata agli oggetti
Gerarchie di classi ed ereditarietà Polimorfismo e binding dinamico
Come definire un sistema polimorfo Risoluzione del metodo da invocare L’operatore instanceof
Eccezioni all’ereditarietà La classe Object Classi astratte Interfacce
Ereditarietà multipla con le interfacce
Classi anonime
Capitolo 9 - Programmazione generica
Terminologia essenziale Metodi generici Classi generiche
Diamond operator e classi anonime Metodi statici
Interfacce generiche Ereditarietà e generici Vincoli sui parametri di tipo Covarianza, controvarianza e invarianza
Annotazioni di varianza e wildcard Covarianza degli array
Tipi raw
Caso 1 Caso 2 Caso 3
Rappresentazione low-level dei generici Limiti e restrizioni dei generici
I Restrizione: utilizzo degli array II Restrizione: utilizzo nei contesti static III Restrizione: utilizzo delle variabili di tipo IV Restrizione: utilizzo di cast e instanceof V Restrizione: utilizzo dei tipi primitivi VI Restrizione: utilizzo con le eccezioni VII Restrizione: utilizzo dell’overloading
Capitolo 10 - Programmazione funzionale
Concetti propedeutici
Lo stile dichiarativo: un esempio Immutabilità dello stato: un esempio First-class values e closure: un esempio
La programmazione funzionale con Java
Estensione delle interfacce Interfacce funzionali Metodi di default Metodi statici Metodi privati Ereditarietà e problemi di ambiguità
Lambda expression
Regole di scope rivisitate Le keyword this e super Riferimenti a metodi Riferimenti ai costruttori this e i riferimenti a metodi super e i riferimenti a metodi Target typing Il package java.util.function
Capitolo 11 - Eccezioni e asserzioni
Eccezioni
Sintassi di base Rilancio delle eccezioni Eccezioni controllate e non controllate Eccezioni a catena Eccezioni nei costruttori e nei finalizzatori di istanza La clausola finally Classi eccezione della libreria standard
Asserzioni
Abilitazione delle asserzioni Disabilitazione delle asserzioni Comuni casi di utilizzo Rappresentazione low-level delle asserzioni
Parte III - Concetti e costrutti supplementari e avanzati Capitolo 12 - Package
Una panoramica concettuale Dichiarazione dei package
Package senza nome
Dichiarazioni di importazione
Importazione di tipo singolo Importazione su richiesta Importazione statica Importazione statica su richiesta
Visibilità e disponibilità dei package
L’opzione --class-path (o -cp o -classpath) La variabile di ambiente CLASSPATH
Archiviazione dei package Accesso di tipo package
Riepilogo delle modalità di accesso ai tipi e ai membri
Capitolo 13 - Moduli
Senza un sistema a moduli: prima di Java 9 Con un sistema a moduli: a partire da Java 9
Moduli Dichiarazione Dipendenza Esportazione Apertura Accessibilità Descrittori Packaging Path Risoluzione Osservabilità �Compatibilità Servizi
Moduli: un esempio pratico Interazione tra i moduli: un esempio pratico Creazione e utilizzo dei servizi: un esempio pratico Compatibilità e migrazione: un esempio pratico Immagini di runtime custom: un esempio pratico
Capitolo 14 - Annotazioni
Il tipo annotazione
Membri di un tipo annotazione
Annotazioni
Annotazioni normali Annotazioni a singolo elemento Annotazioni marcatore
Applicabilità delle annotazioni Tipi annotazione predefinite
@Deprecated @FunctionalInterface @Inherited @Override @Repeatable @Retention @SafeVarargs @SuppressWarnings @Target
Elaborazione delle annotazioni
Elaborazione a livello di codice sorgente Elaborazione a livello di file .class Elaborazione a runtime
Capitolo 15 - Documentazione del codice sorgente
Documentare una classe Altri tag Generare la documentazione
Parte IV - Introduzione ai tipi e alle librerie essenziali Capitolo 16 - Caratteri e stringhe
La classe Character
Alcuni metodi del tipo Character
La classe String
Alcuni metodi del tipo String
La classe StringBuilder
Alcuni metodi del tipo StringBuilder
La classe StringTokenizer
Alcuni metodi del tipo StringTokenizer
Capitolo 17 - Espressioni regolari
Concetti propedeutici
Corrispondenza precisa con il carattere indicato Corrispondenza con una classe di caratteri non predefinita Corrispondenza con una classe di caratteri predefinita Corrispondenze di limite Corrispondenze con quantificatori greedy Corrispondenze con gli operatori logici Corrispondenze con costrutti speciali
Espressioni regolari con la classe String Le classi Pattern e Matcher
Alcuni metodi del tipo Pattern Alcuni metodi del tipo Matcher
Capitolo 18 - Collezioni
Il framework di Java per le collezioni L’interfaccia Collection L’interfaccia Set L’interfaccia SortedSet L’interfaccia NavigableSet L’interfaccia List L’interfaccia Queue L’interfaccia Deque L’interfaccia Map L’interfaccia SortedMap L’interfaccia NavigableMap Implementazioni dell’interfaccia Set Implementazioni dell’interfaccia List Implementazioni delle interfacce Queue e Deque Implementazioni dell’interfaccia Map Le interfacce Comparable e Comparator Le interfacce Iterator, ListIterator e Iterable Algoritmi polimorfici sulle collezioni Collezioni concorrenti Stream
Il package java.util.stream Concetti preliminari Tipologie di iterazioni Operazioni sugli stream Parallelismo Ordinamento Riduzione
Riduzione mutabile
Alcuni metodi del tipo Stream Alcuni metodi del tipo Collectors
Capitolo 19 - Programmazione concorrente
Processi e thread
Stati di un thread Priorità dei thread
La classe Thread e l’interfaccia Runnable
Alcuni metodi del tipo Thread
Sincronizzazione fra i thread
Un esempio di mutex Un esempio di cooperazione
Liveness dei thread
Un esempio di deadlock Un esempio di starvation Un esempio di livelock
Concorrenza con le API ad alto livello
Il package java.util.concurrent Il package java.util.concurrent.locks Il package java.util.concurrent.atomic
Capitolo 20 - Input/Output: stream e file
Utilizzo degli stream
Alcuni metodi del tipo BufferedReader Alcuni metodi del tipo BufferedWriter
Scansione e formattazione del testo Le nuove API per l’input e l’output (NIO.2)
L’interfaccia Path
Alcuni metodi del tipo Path
La classe Files
Alcuni metodi del tipo Files
L’interfaccia PathMatcher L’interfaccia FileVisitor L’interfaccia WatchService
Capitolo 21 - Programmazione di rete
Teoria di base
Classificazione delle reti Livelli e protocolli di rete Il modello OSI e la suite TCP/IP Trasmissione dei dati e mezzi trasmissivi Indirizzi IP Il protocollo TCP Il protocollo UDP DNS La posta elettronica Il World Wide Web
Le API per l’accesso alle interfacce di rete
Alcuni metodi del tipo NetworkInterface Alcuni metodi del tipo InetAddress
Utilizzo degli URL
Alcuni metodi del tipo URL Alcuni metodi del tipo UrlConnection
Utilizzo dei socket
Alcuni metodi del tipo ServerSocket Alcuni metodi del tipo Socket
Utilizzo dei datagrammi
Alcuni metodi del tipo DatagramSocket Alcuni metodi del tipo DatagramPacket
Parte V - Appendici Appendice A - Installazione e configurazione della piattaforma Java SE 9 Appendice B - Installazione e utilizzo di NetBeans
Sviluppare applicazioni Java SE con l’IDE
Creazione di un progetto che fa uso dei moduli
Appendice C - Sistemi numerici: cenni
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion