0Pricing
Java Academy icon

Java Academy

JAVABackendWebMobileEnterpriseBeginnerCloudDatabaseAndroidDesktopNetwork

Diventa competente nella programmazione Java e sviluppa applicazioni potenti con Java Academy.

🤖 Alimentato da IA📚 104 corsi👥 100.000+ studenti⭐ Valutazione 4,9
Panoramica del Corso

Java: Dalla Prima Classe ai Sistemi Production-Grade

Java è stato il fondamento del software enterprise, dello sviluppo Android e dei sistemi backend su larga scala per quasi tre decenni. Gira sulla JVM, include una ricca libreria standard e alimenta tutto, dalle piattaforme di trading finanziario ai microservizi cloud. Questo track costruisce una vera competenza in Java — iniziando con variabili e control flow, e terminando con JVM internals, virtual threads e compilazione nativa via GraalVM.

Cosa Imparerai

Passerai dalla sintassi core — variabili, tipi di dato, loop e metodi — attraverso il design orientato agli oggetti con classi, ereditarietà, polimorfismo, sealed classes e records. Gli stage intermedi coprono l'intero framework Collections, le API java.time e NIO.2, le lambda expressions, le functional interfaces e l'API Streams includendo collectors, spliterators e primitive streams. I corsi successivi affrontano la configurazione di Spring Boot e l'iniezione di dipendenze, Spring Data JPA, REST API validation, JUnit 5 integration testing e la sicurezza basata su JWT. La parte avanzata del track copre ExecutorService, locks, atomic variables, CompletableFuture, structured concurrency, virtual threads via Project Loom, class loading e bytecode della JVM, compilazione GraalVM native image e performance profiling con JMH.

Il Percorso di Apprendimento

Oltre 120 corsi coprono i livelli da A1 a C2. I corsi A1 e A2 stabiliscono i fondamenti: il type system, casting, autoboxing, wrapper classes, array, conditionals e metodi. B1 copre Java orientato agli oggetti in profondità — enums, inner classes, iterators, comparators, HashMap internals, exception handling, serialization e build tools come Maven e Gradle. B2 introduce la programmazione funzionale, generics con bounded wildcards, custom annotations e una sequenza pratica di Spring Boot che termina con un Mini Project: REST API. I corsi C1 sono dove concurrency e performance diventano protagonisti — parallel streams, Java Memory Model, garbage collection, reflection, dynamic proxies e structured concurrency. Il track si chiude a C2 con la Foreign Function and Memory API, la capacità Java di livello più basso per interoperare direttamente con codice nativo.

Come Funziona

Ogni corso è diviso in lezioni brevi e focalizzate che completi nell'editor di codice integrato con feedback in tempo reale. Un tutor AI è disponibile ogni volta che rimani bloccato, e mini projects in momenti chiave — Word Stats, Shape Hierarchy, Log Analyzer, REST API e Parallel Stats — ti permettono di applicare ciò che hai imparato prima di procedere.

Inizia a Imparare →

Come Imparerai

🎯
Lezioni Interattive
Esercizi di codifica pratici con feedback in tempo reale
🤖
Tutor IA
Ricevi aiuto istantaneo dalla nostra IA quando sei bloccato
💻
Editor Integrato
Scrivi ed esegui il codice direttamente nel tuo browser
🏆
Certificato
Guadagna un certificato al completamento del corso
Curriculum

104 Corsi

Ogni corso nel percorso di apprendimento Java Academy.

01

Introduzione a Java

A13 lezioni

Java è un linguaggio di programmazione orientato agli oggetti e di alto livello, introdotto nel 1995 da Sun Microsystems. Noto per la capac…

02

Scanner e input dalla console

A14 lezioniPRO

Scanner e input dalla console: leggere l'input con Scanner, leggere numeri e righe e altro

03

Hello Java e configurazione dell'IDE

A13 lezioniPRO

Inizi il suo percorso con Java: impari cos'è la programmazione, come viene eseguito Java sulla JVM e quali strumenti le serviranno in segui…

04

Fondamenti di variabili ed espressioni

A13 lezioniPRO

Padroneggi variabili ed espressioni Java: impari i tipi primitivi, le dichiarazioni, l'assegnazione, la stampa dei valori e le basi delle e…

05

Sistema dei tipi e casting in Java

A24 lezioniPRO

Padroneggi il sistema dei tipi di Java: tipi primitivi e di riferimento, conversioni widening e narrowing, casting esplicito e operatore in…

06

Matematica e formattazione dei numeri in Java

A24 lezioniPRO

Esplori la classe Math, BigDecimal per la precisione finanziaria, NumberFormat per l'output sensibile alla lingua e la risoluzione pratica…

07

Espressioni switch e sintassi con freccia

A24 lezioniPRO

Espressioni switch e sintassi con freccia: switch in stile freccia, switch come espressione e altro

08

Blocchi di testo e stringhe multilinea

A24 lezioniPRO

Blocchi di testo e stringhe multilinea: dichiarare blocchi di testo, indentazione e rimozione e altro

09

var e inferenza locale dei tipi

A24 lezioniPRO

var e inferenza locale dei tipi: usare var per le variabili locali, quando var migliora la leggibilità e altro

10

Classi wrapper e autoboxing

A24 lezioniPRO

Classi wrapper e autoboxing: tipi primitivi e wrapper, autoboxing e unboxing e altro

11

La classe di utilità Arrays

A24 lezioniPRO

La classe di utilità Arrays: Arrays.sort e ordinamento, Arrays.binarySearch e altro

12

Utility Random e Math di Java

A24 lezioniPRO

Utility Random e Math di Java: la classe Math, generare numeri casuali e altro

13

Leggere input con BufferedReader

A24 lezioniPRO

Legga in modo efficiente l'input dell'utente e dei file in Java.

14

Espressioni ternarie e condizionali in Java

A24 lezioniPRO

Scriva decisioni compatte con l'operatore condizionale.

15

Caratteri e metodi Character in Java

A24 lezioniPRO

Lavori con singoli caratteri usando la classe Character.

16

Formattare l'output con printf

A24 lezioniPRO

Produca testo formattato con precisione usando gli specificatori di formato.

17

Cicli con etichette e controllo del flusso in Java

A24 lezioniPRO

Controlli i cicli annidati con break, continue ed etichette.

18

Condizioni I: fondamenti di if/else

A23 lezioniPRO

Prenda decisioni in Java usando if, else if ed else. Costruisca espressioni booleane chiare con operatori di confronto e logici. Lezioni br…

19

Condizioni II: operatori e switch

A23 lezioniPRO

Approfondisca i confronti (==, !=, <, >, <=, >=) e la logica booleana (&&, ||, !). Impari la precedenza, il raggruppamento con le parentesi…

20

Cicli I: while e do-while

A22 lezioniPRO

Impari i cicli while passo dopo passo: inizializzazione, condizione, aggiornamento ed evitamento dei cicli infiniti. Si eserciti con piccol…

21

Cicli II: for e schemi

A23 lezioniPRO

Padroneggi il ciclo for: inizializzazione, condizione e aggiornamento in un'unica riga. Scriva cicli di conteggio, somme e semplici schemi.…

22

Operatori Java

A21 lezionePRO

Java offre numerosi operatori per lavorare con i dati. Grazie a questi operatori possiamo manipolarli. Tra questi ci sono gli operatori ari…

23

Stringhe in Java

A21 lezionePRO

In Java il tipo di dati stringa serve a contenere i dati testuali. Le stringhe sono tipi di dati di riferimento, non tipi primitivi. In que…

24

Array I: array monodimensionali

A23 lezioniPRO

Impari a usare gli array monodimensionali: cosa sono, come dichiararli e crearli, come accedere agli elementi e aggiornarli, come usare len…

25

Array II: array bidimensionali

A26 lezioniPRO

Impari gli array bidimensionali in Java: come dichiararli e crearli, accedere a righe e colonne e iterare con cicli annidati. Si eserciti n…

26

Metodi I: nozioni di base

A23 lezioniPRO

Padroneggi i fondamenti dei metodi Java: firme, parametri e argomenti, convenzioni di chiamata e progettazione di base. Lezioni brevi e mir…

27

Metodi II: progettazione e riutilizzo

A23 lezioniPRO

Progetti e riutilizzi i metodi in modo efficace: comprenda la semantica Java del passaggio per valore, scelga tra metodi statici e di istan…

28

Enum in Java

B14 lezioniPRO

Impari a definire e usare gli enum in Java: costanti enum, campi, metodi, espressioni switch con enum e raccolte EnumSet/EnumMap.

29

Record Java e dati immutabili

B14 lezioniPRO

Scopra i Record Java (Java 16+): creazione di contenitori di dati immutabili, costruttori compatti, metodi personalizzati nei record e scel…

30

StringBuilder e prestazioni delle stringhe

B14 lezioniPRO

StringBuilder e prestazioni delle stringhe: perché le stringhe sono immutabili, costruire stringhe con StringBuilder e altro

31

BigDecimal e BigInteger

B14 lezioniPRO

BigDecimal e BigInteger: perché non usare double per il denaro, lavorare con BigDecimal e altro

32

API java.time per date e orari

B14 lezioniPRO

API java.time per date e orari: LocalDate, LocalTime, LocalDateTime, Instant e Duration e altro

33

Optional in Java

B14 lezioniPRO

Utilizzi Optional per eliminare le NullPointerExceptions: creazione, mapping, filtraggio e consumo idiomatico degli Optional in Java 17+.

34

Approfondimento sulle stringhe in Java

B14 lezioniPRO

Vada oltre le stringhe di base: StringBuilder, StringJoiner, espressioni regolari, String.format, blocchi di testo e pattern comuni per gli…

35

Varargs, overloading e membri statici in Java

B14 lezioniPRO

Padroneggi la risoluzione dell'overloading dei metodi, i parametri varargs, i campi e metodi statici e i pattern di progettazione delle cla…

36

Classi interne e anonime in Java

B14 lezioniPRO

Esplori le varianti delle classi annidate: classi annidate statiche, classi interne, classi locali e classi anonime, comprendendo quando us…

37

Iteratori e Iterable in Java

B14 lezioniPRO

Implementi le interfacce Iterable e Iterator personalizzate per rendere le Sue strutture dati compatibili con i cicli for-each e il framewo…

38

Comparator e ordinamento in Java

B14 lezioniPRO

Ordini raccolte e array usando Comparable, Comparator, riferimenti a metodi e catene di ordinamento multilivello in scenari realistici.

39

LinkedList e Deque in Java

B14 lezioniPRO

Comprenda i dettagli interni di LinkedList, la struttura doppiamente concatenata, le operazioni Deque, la simulazione di uno stack e quando…

40

TreeMap e TreeSet in Java

B14 lezioniPRO

Padroneggi le raccolte ordinate: operazioni NavigableMap di TreeMap, TreeSet per elementi unici ordinati, subMap/headMap/tailMap e fondamen…

41

API Path e Files di Java NIO.2

B14 lezioniPRO

Esplori la moderna API java.nio.file: creazione di Path, metodi di utilità Files, attraversamento delle directory con walkFileTree e monito…

42

Serializzazione Java e persistenza degli oggetti

B14 lezioniPRO

Comprenda la serializzazione in Java: interfaccia Serializable, campi transient, serialVersionUID, writeObject/readObject personalizzati e…

43

Classi e interfacce sealed

B14 lezioniPRO

Classi e interfacce sealed: dichiarare tipi sealed, clausola permits e altro

44

Pattern matching per instanceof e record

B14 lezioniPRO

Pattern matching per instanceof e record: pattern matching per instanceof, record pattern e altro

45

Espressioni regolari con Pattern e Matcher

B14 lezioniPRO

Espressioni regolari con Pattern e Matcher: compilare pattern, trovare e verificare corrispondenze e altro

46

Funzionamento interno di HashMap ed equals/hashCode

B14 lezioniPRO

Funzionamento interno di HashMap ed equals/hashCode: come funziona HashMap, il contratto equals/hashCode e altro

47

EnumMap, EnumSet ed enumerazioni avanzate

B14 lezioniPRO

EnumMap, EnumSet ed enumerazioni avanzate: enum con campi e metodi, metodi astratti negli enum e altro

48

Logging con SLF4J e Logback

B14 lezioniPRO

Logging con SLF4J e Logback: perché usare il logging strutturato, facade SLF4J e logger e altro

49

Package e modificatori di accesso

B11 lezionePRO

Java usa i modificatori di accesso per limitare l’accesso reciproco tra gli oggetti. Queste limitazioni possono essere applicate a livello…

50

Mini progetto: statistiche sulle parole

B13 lezioniPRO

Crei un piccolo strumento per le statistiche sulle parole: tokenizzi il testo, lo normalizzi, conti le occorrenze e riporti i risultati pri…

51

OOP I: classi e oggetti

B13 lezioniPRO

Apprenda le basi di classi e oggetti in Java. Crei classi semplici, istanzi oggetti e comprenda il loro ruolo nella OOP.

52

OOP II: pratiche

B13 lezioniPRO

Le pratiche quotidiane della OOP in Java: la parola chiave this, un toString leggibile, equals e hashCode corretti e consigli pratici per p…

53

Ereditarietà I

B13 lezioniPRO

Apprenda le basi dell'ereditarietà in Java: estenda una classe base, chiami i costruttori super e riutilizzi in sicurezza il comportamento…

54

Astrazioni e interfacce

B13 lezioniPRO

Classi astratte e interfacce in Java: quando usarle, come dichiararle e come guidano la progettazione.

55

Mini progetto: gerarchia di forme

B13 lezioniPRO

Progetti e implementi una piccola gerarchia di forme con una base astratta, forme concrete e comportamenti polimorfici.

56

Collezioni I: liste e insiemi

B13 lezioniPRO

Impari a usare liste e insiemi Java: quando scegliere ciascuno, operazioni di base e semplici schemi di iterazione.

57

Collezioni II: mappe e algoritmi

B13 lezioniPRO

Impari a usare le mappe per le ricerche chiave→valore, il conteggio delle frequenze e semplici algoritmi con liste e insiemi.

58

Eccezioni I: fondamenti

B13 lezioniPRO

Apprenda le basi della gestione delle eccezioni: blocchi try, catch e finally con esempi semplici.

59

Eccezioni II: pratica

B13 lezioniPRO

Applichi la gestione delle eccezioni con eccezioni personalizzate, istruzioni throw e programmazione difensiva.

60

File e I/O I

B13 lezioniPRO

Impari a usare le classi Java NIO Path e Files: creare, verificare ed eliminare file in sicurezza.

61

File e I/O II

B13 lezioniPRO

Impari la serializzazione degli oggetti Java: scrivere oggetti su file e rileggerli.

62

Mini progetto: analizzatore di log

B13 lezioniPRO

Costruisca un semplice analizzatore di log per leggere, analizzare e riepilogare i file di log.

63

Strumenti di build: Maven e Gradle

B14 lezioniPRO

Strumenti di build: Maven e Gradle: struttura dei progetti Maven, plugin e goal Maven e altro

64

JDBC e connection pooling

B14 lezioniPRO

JDBC e connection pooling: fondamenti di JDBC, PreparedStatement e altro

65

Approfondimento sui Collector degli Stream Java

B24 lezioniPRO

Vada oltre gli Stream di base: groupingBy, partitioningBy, toMap, counting, summarizingInt, joining e creazione di Collector personalizzati…

66

Riferimenti a metodi in Java

B24 lezioniPRO

Semplifichi le espressioni lambda usando i riferimenti a metodi: statici, di istanza, di istanza arbitraria e a costruttori, con esempi rea…

67

Pattern di progettazione Java: creazionali

B24 lezioniPRO

Implementi i quattro principali pattern creazionali in Java: Singleton (thread-safe), Factory Method, Abstract Factory e Builder con API fl…

68

Pattern di progettazione Java: comportamentali

B24 lezioniPRO

Padroneggi i pattern di progettazione comportamentali in Java: Observer, Strategy, Command e Template Method, con casi d'uso concreti tratt…

69

Interfacce funzionali in dettaglio

B24 lezioniPRO

Interfacce funzionali in dettaglio: Function e BiFunction, Supplier e Consumer e altro

70

Stream di tipi primitivi

B24 lezioniPRO

Stream di tipi primitivi: IntStream e LongStream, operazioni di intervallo e aggregazione e altro

71

Wildcard con limiti e PECS

B24 lezioniPRO

Wildcard con limiti e PECS: wildcard con limite superiore, wildcard con limite inferiore e altro

72

Interfacce e generics

B23 lezioniPRO

Le interfacce nella pratica e le basi dei generics Java per scrivere codice più sicuro e riutilizzabile.

73

Annotazioni personalizzate in Java

B24 lezioniPRO

Definisca annotazioni personalizzate, politiche di conservazione e target, quindi le elabori a runtime con la reflection e in fase di compi…

74

Operazioni avanzate sugli stream e Spliterator

B24 lezioniPRO

Scopra le funzionalità avanzate degli Stream: flatMap su strutture annidate, peek per il debugging, insidie degli stream paralleli, interna…

75

Spring Boot: configurazione e dependency injection

B24 lezioniPRO

Padroneggi l'auto-configurazione di Spring Boot, le proprietà dell'applicazione, i profili, @Bean, @Component, @Service, @Repository e le b…

76

Spring Data JPA: entità e repository

B24 lezioniPRO

Mappi le entità Java alle tabelle del database con le annotazioni JPA, definisca repository Spring Data, scriva query JPQL e native e gesti…

77

Spring Boot REST API: validazione e gestione degli errori

B24 lezioniPRO

Costruisca REST API robuste: Bean Validation con @Valid, validatori personalizzati, gestione globale delle eccezioni con @ControllerAdvice…

78

Testing con JUnit 5: test parametrizzati e di integrazione

B24 lezioniPRO

Vada oltre i semplici test unitari: test parametrizzati con @MethodSource e @CsvSource, Testcontainers per l'integrazione con i database e…

79

Sicurezza Java: hashing, crittografia e JWT

B24 lezioniPRO

Implementi i fondamenti della sicurezza in Java: MessageDigest per l'hashing, crittografia AES, HMAC-SHA256 e creazione e verifica di JWT s…

80

Il sistema di moduli Java (JPMS)

B24 lezioniPRO

Il sistema di moduli Java (JPMS): module-info.java, requires ed exports e altro

81

Il client HTTP moderno

B24 lezioniPRO

Il client HTTP moderno: java.net.http.HttpClient, richieste asincrone e altro

82

GraalVM e Native Image

B24 lezioniPRO

GraalVM e Native Image: che cos'è GraalVM, creare una Native Image e altro

83

Lambda e interfacce funzionali

B23 lezioniPRO

Impari a usare le lambda e le interfacce funzionali Java.

84

Stream I: pipeline

B23 lezioniPRO

Impari a usare gli Stream Java per elaborare dati tramite pipeline.

85

Avvio a Spring Boot

B23 lezioniPRO

Inizi a usare Spring Boot: configuri il progetto, utilizzi gli starter ed esegua la sua prima applicazione.

86

Dati e servizi

B23 lezioniPRO

Impari a usare Spring Data JPA e il database H2 con i repository.

87

Test e distribuzione

B23 lezioniPRO

Esegua il testing di applicazioni Spring con WebTestClient/JUnit, configurazione e packaging.

88

Mini progetto: API REST

B24 lezioniPRO

Progetti, implementi e testi un'API REST con Spring Boot.

89

ExecutorService e pool di thread in Java

C14 lezioniPRO

Gestisca il ciclo di vita dei thread con ExecutorService: pool di thread fissi, in cache e pianificati, invio di attività Callable e gestio…

90

Lock e variabili atomiche in Java

C14 lezioniPRO

Vada oltre synchronized: ReentrantLock, ReadWriteLock, StampedLock, AtomicInteger, AtomicReference e pattern per strutture dati lock-free.

91

Stream paralleli e prestazioni

C14 lezioniPRO

Stream paralleli e prestazioni: creare stream paralleli, quando il parallelismo è utile e altro

92

Gestione della memoria Java e garbage collection

C14 lezioniPRO

Comprenda il modello di memoria della JVM: regioni dell'heap (Young/Old/Metaspace), algoritmi di GC (G1, ZGC), memory leak, profilazione co…

93

CompletableFuture e pipeline asincrone in Java

C14 lezioniPRO

Componi calcoli asincroni con CompletableFuture: thenApply, thenCompose, allOf, anyOf, exceptionally e creazione di pipeline non bloccanti.

94

Reflection e proxy dinamici in Java

C14 lezioniPRO

Utilizzi la Reflection API per ispezionare e invocare classi a runtime, creare proxy dinamici e comprendere come framework come Spring usin…

95

Internals della JVM: caricamento delle classi e bytecode

C14 lezioniPRO

Esplori l'interno della JVM: fasi del caricamento delle classi, gerarchia dei loader bootstrap/extension/application, ispezione del bytecod…

96

Thread virtuali (Project Loom)

C14 lezioniPRO

Thread virtuali (Project Loom): che cosa sono i thread virtuali, creare thread virtuali e altro

97

Concorrenza strutturata

C14 lezioniPRO

Concorrenza strutturata: il modello della concorrenza strutturata, StructuredTaskScope e altro

98

Microbenchmark con JMH

C14 lezioniPRO

Microbenchmark con JMH: perché usare JMH, scrivere un benchmark e altro

99

Profilazione e ottimizzazione delle prestazioni Java

C14 lezioniPRO

Profilazione e ottimizzazione delle prestazioni Java: identificare i colli di bottiglia, Java Flight Recorder e altro

100

Stream II: prestazioni e insidie

C13 lezioniPRO

Apprenda i comportamenti avanzati degli Stream, tra cui l'ordinamento e lo short-circuiting.

101

Concorrenza I

C12 lezioniPRO

Un'introduzione alla concorrenza in Java con Threads, Executors e sincronizzazione.

102

Concorrenza II

C13 lezioniPRO

Concorrenza avanzata: sincronizzazione, lock, atomiche e problemi comuni.

103

Mini progetto: statistiche parallele

C13 lezioniPRO

Costruisca un progetto che calcoli statistiche in parallelo usando stream e concorrenza.

104

API Foreign Function and Memory

C24 lezioniPRO

API Foreign Function and Memory: perché FFM invece di JNI, MemorySegment e Arena e altro

FAQ

Domande Frequenti

Il corso Java Academy è gratuito?

Sì. Puoi iniziare il corso Java Academy gratuitamente e completare le sue lezioni interattive senza costi. Un abbonamento PRO opzionale sblocca strumenti IA avanzati e un certificato condivisibile.

Serve esperienza precedente per imparare JAVA?

No. Il corso inizia con i fondamenti e prosegue gradualmente verso argomenti più avanzati, quindi puoi iniziare anche senza alcuna esperienza precedente in JAVA.

Come imparerò JAVA su CoddyKit?

Impari facendo. Brevi lezioni interattive abbinano una spiegazione chiara a un esercizio di codifica pratico che gira in tempo reale, e un tutor IA disponibile 24/7 offre aiuto personalizzato quando rimani bloccato.

Ricevo un certificato per il completamento di Java Academy?

Sì. Gli studenti PRO possono sostenere un esame e guadagnare un certificato condivisibile di completamento con un codice verificabile per il corso Java Academy.

Posso imparare JAVA dal mio telefono?

Sì. CoddyKit è disponibile sul web e come app native iOS e Android, quindi puoi imparare JAVA su qualsiasi dispositivo e i tuoi progressi si sincronizzano tra loro.

Inizia Java Academy Ora

Unisciti a migliaia di studenti che imparano la programmazione con lezioni potenziate dall'IA.

Inizia Gratis →Sfoglia Tutti i Corsi