CodeGym
AI Academy
Promozione
CodeGym University
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • Stream primitivi e costo del boxing

    JAVA 25 SELF
    Livello 33,Lezione 0
    In questa lezione vedremo perché gli stream standard di collezioni di numeri ( Stream<Integer>, Stream<Double>) possono essere inefficienti a causa del boxing/unboxing, e come gli stream primitivi — IntStream, LongStream, DoubleStream — aiutino a evitarlo. Analizzeremo le conversioni mapToInt/ boxed(), le operazioni di aggregazione ( sum(), average(), summaryStatistics()), i risultati sicuri con OptionalInt/ OptionalDouble, nonché dove l’ottimizzazione porta davvero benefici e come misurarne l’effetto con JMH.
    Disponibile
  • Elaborazione pigra (lazy evaluation) nelle Stream API

    JAVA 25 SELF
    Livello 33,Lezione 1
    In questa lezione vediamo come funziona l'elaborazione pigra nelle Stream API: in cosa differiscono le operazioni intermedie e terminali, perché i calcoli partono solo dopo la chiamata di un terminale, quali vantaggi offrono l'elaborazione elemento per elemento e la «valutazione a corto circuito». Mostreremo catene con filter, map, peek, findFirst, forEach, visualizzeremo il passaggio degli elementi e analizzeremo errori tipici e raccomandazioni per un ordine efficiente delle operazioni.
    Disponibile
  • Collezioni immutabili: Collections.unmodifiable

    JAVA 25 SELF
    Livello 33,Lezione 2
    In questa lezione analizziamo come proteggere i dati con i wrapper immutabili Collections.unmodifiableList, unmodifiableSet, unmodifiableMap, in cosa differiscono l’«immutabilità superficiale» da quella «profonda», quando e perché restituire wrapper dai metodi, nonché le alternative moderne List.of/ Set.of/ Map.of. Parleremo degli errori tipici (per esempio, aspettarsi l’immutabilità profonda o lavorare con null) e del perché i tentativi di modifica terminano con UnsupportedOperationException.
    Disponibile
  • Spliterator e stream paralleli

    JAVA 25 SELF
    Livello 33,Lezione 3
    In questa lezione analizziamo che cos’è Spliterator, come consente non solo di iterare gli elementi ma anche di suddividere la sorgente di dati in parti con trySplit(), e come su questa base funzionano gli stream paralleli tramite parallelStream() e il pool condiviso ForkJoinPool. Sono mostrati i metodi chiave ( tryAdvance, estimateSize, characteristics), le caratteristiche tipiche ( ORDERED, SIZED, CONCURRENT e altre), esempi pratici, uno schema Mermaid e gli errori frequenti nell’uso degli stream paralleli.
    Disponibile
  • Collector e Spliterator personalizzati

    JAVA 25 SELF
    Livello 33,Lezione 4
    In questa lezione analizziamo come scrivere collector personalizzati per lo Stream API tramite Collector e quando ciò è davvero giustificato, nonché come implementare un proprio Spliterator per un'iterazione dei dati efficiente sia sequenziale sia parallela. Esamineremo passo passo i componenti di un collector ( supplier, accumulator, combiner, finisher, characteristics), esempi per multi‑mappe e top‑N, le strategie di trySplit e anche l'impostazione corretta delle caratteristiche ( ORDERED, SIZED, SUBSIZED ecc.).
    Disponibile
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym