Documentazione Java
Guida di riferimento a Java concisa e ricca di esempi. Leggi il concetto, guarda il codice e poi mettilo in pratica in un percorso Coddy.
Inizia un percorso guidato di JavaGetting Started
- Cos'è JavaCos'è davvero Java, come la JVM permette a un programma compilato di funzionare ovunque e che tipo di software si costruisce con Java.
- Installare JavaCome installare il Java Development Kit (JDK), scegliere versione e distribuzione e verificare che java e javac funzionino dalla riga di comando.
- Eseguire JavaIl ciclo in due passaggi, prima compilare e poi eseguire, dietro ogni programma Java: trasformare il sorgente .java in bytecode con javac, poi eseguire il file .class con java.
- Sintassi JavaLa forma di un programma Java: il metodo `main`, le istruzioni e i punti e virgola, i blocchi e le parentesi graffe, e le regole che il compilatore impone prima ancora che il tuo codice venga eseguito.
- CommentiCome scrivere commenti in Java: commenti su una riga //, blocchi su più righe /* */ e commenti di documentazione Javadoc /** */, con quando usarli e cosa evitare.
Variables & Types
- VariabiliCome funzionano le variabili in Java: dichiararle con un tipo, assegnare valori, le regole sui nomi, la parola chiave var, le costanti con final e le regole di scope che decidono dove vive una variabile.
- Tipi di datiI tipi di dati di Java spiegati: gli otto tipi primitivi, i tipi riferimento, i valori predefiniti, letterali e suffissi, l'overflow e quando usare ogni tipo numerico.
- StringheCome funzionano le stringhe in Java: crearle, unirle con +, perché sono immutabili, confrontarle con equals e i metodi di String di tutti i giorni come length, substring e replace.
- Formattare stringheCome formattare le stringhe in Java con String.format e printf: gli specificatori di formato per numeri, padding e decimali, i text block e il metodo formatted.
- OperatoriCome funzionano gli operatori in Java: aritmetici, di confronto, logici, di assegnazione, di incremento e l'operatore ternario, più la divisione intera, la precedenza e le trappole per chi inizia.
- Type castingCome Java converte tra tipi: l'allargamento automatico, i cast espliciti di restringimento, quali dati perdi quando restringi e la conversione tra numeri e stringhe.
- Classe MathCome usare la classe Math di Java: Math.pow, Math.sqrt, Math.abs, Math.max e Math.min, arrotondare con round, floor e ceil, generare numeri casuali in un intervallo con Math.random e le costanti PI ed E, con il tipo di ritorno di ciascuno.
Control Flow
- if-elseCome prendere decisioni in Java con if, else if ed else: condizioni booleane, catene di rami, annidamento, l'operatore ternario e gli errori più comuni.
- switchL'istruzione switch di Java spiegata: etichette case, break e fall-through, il ramo default, i case raggruppati, la forma moderna con la freccia e le switch expression.
- Ciclo forIl ciclo for di Java spiegato: il classico ciclo in tre parti, scorrere array e liste, cicli annidati, break e continue, e il for-each migliorato.
- Cicli whileIl ciclo while di Java spiegato: il while che controlla prima la condizione, il do-while che viene eseguito almeno una volta, leggere input fino a un valore sentinella, break e continue, e come evitare i cicli infiniti.
- Ciclo for-eachIl ciclo for-each di Java (for migliorato) spiegato: iterazione pulita su array e collezioni, quando usarlo e la trappola della modifica in cui cadono tutti.
Arrays & Collections
- ArrayCome funzionano gli array in Java: lunghezza fissa, dichiarazione e inizializzazione, indici, length, cicli, array multidimensionali e la classe di utilità Arrays.
- ArrayListCome usare l'ArrayList di Java, la lista ridimensionabile da preferire a un array semplice: aggiungere, leggere, rimuovere, dimensione, cicli e ordinamento.
- HashMapCome usare la HashMap di Java per ricerche chiave-valore: put, get, getOrDefault, containsKey, scorrere le coppie e gli schemi che userai più spesso.
- HashSetCome usare l'HashSet di Java per collezioni di valori unici: add, contains, remove, togliere i duplicati da una lista e combinare insiemi con unione, intersezione e differenza.
- Iterare le collectionI modi per scorrere le collection Java: il ciclo for-each, l'Iterator, i cicli con indice e il metodo forEach, e come rimuovere elementi in sicurezza durante l'iterazione.
Methods
- MetodiCos'è un metodo in Java, come si dichiara e si chiama, valori di ritorno e void, il metodo static main e come i metodi rendono il codice ordinato e riutilizzabile.
- Parametri dei metodiCome funzionano i parametri dei metodi in Java: passare argomenti, la differenza tra parametri e argomenti, la regola del passaggio per valore e la restituzione dei valori.
- Overloading dei metodiCome l'overloading dei metodi in Java permette a più metodi di condividere un nome con parametri diversi, come il compilatore sceglie la versione giusta e quali ambiguità evitare.
- VarargsCome i varargs (...) di Java permettono a un metodo di accettare un numero qualsiasi di argomenti, come diventano un array, la regola del varargs unico e finale, e le trappole della chiamata vuota e dell'ambiguità.
Classes & Objects
- ClassiCos'è una classe in Java, come definire campi e metodi, creare oggetti con new, il ruolo di this e perché lo stato di istanza vive nell'oggetto.
- CostruttoriCome funzionano i costruttori in Java: il costruttore di default, i costruttori con parametri, this, l'overloading dei costruttori e il concatenamento con this() e super().
- EreditarietàCome una sottoclasse Java eredita campi e metodi con extends, chiama la classe madre tramite super e ridefinisce il comportamento, con le trappole più comuni.
- InterfacceCos'è un'interfaccia in Java, come definirla e implementarla, i metodi default e static, e in cosa le interfacce differiscono dalle classi astratte.
- Classi astratteCos'è una classe astratta in Java, come dichiarare metodi astratti, perché non puoi istanziarla e quando scegliere una classe astratta invece di un'interfaccia.
- PolimorfismoCome il polimorfismo in Java permette a una variabile di riferirsi a tanti tipi, perché i metodi sovrascritti vengono scelti a runtime e come usare upcasting, downcasting e instanceof in sicurezza.
- Modificatori di accessoCome i quattro livelli di accesso di Java, cioè public, private, protected e package-private, controllano cosa può vedere e toccare il resto del codice.
- Membri staticiCosa fa la parola chiave static in Java, come i campi e i metodi statici appartengono alla classe invece che agli oggetti, e quando usare blocchi statici e costanti.
- EnumCos'è un enum in Java, come dichiararlo, aggiungere campi e metodi, usarlo in uno switch e perché un enum è meglio di un mucchio di costanti int o String.
Generics & Functional
- GenericsCosa sono i generics di Java, come scrivere classi e metodi generici, parametri di tipo vincolati, wildcard e perché la type erasure è importante.
- Lambda expressionCos'è una lambda expression in Java, la sintassi con la freccia, come implementa un'interfaccia funzionale, i method reference e la cattura delle variabili.
- StreamCome elaborare le collezioni con la Stream API di Java (filter, map, sorted, collect, count e reduce) costruendo pipeline leggibili invece di cicli scritti a mano.
- OptionalCos'è java.util.Optional, come crearne uno e come leggerne il valore in sicurezza con map, filter, orElse e ifPresent invece dei controlli su null.
Errors & Debugging
- EccezioniCos'è un'eccezione in Java, come leggere uno stack trace, la differenza tra eccezioni checked e unchecked, la gerarchia delle eccezioni e come lanciare le tue.
- try-catchCome usare try-catch in Java per gestire le eccezioni: catturare tipi specifici, il blocco finally, try-with-resources e gli errori che nascondono i bug.
- NullPointerExceptionCosa significa davvero una NullPointerException in Java, i modi più comuni in cui la provochi, come leggere il messaggio e gli schemi che la prevengono.