CodeGym
Promozione
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
  • Compressione e profilazione della serializzazione

    JAVA 25 SELF
    Livello 45,Lezione 4
    Come ridurre la dimensione e accelerare la serializzazione degli oggetti in Java: escludiamo i campi superflui con transient, prendiamo il pieno controllo tramite Externalizable, applichiamo la compressione a flusso ( GZIPOutputStream, ZipOutputStream), acceleriamo l’I/O con la bufferizzazione ( BufferedOutputStream, BufferedInputStream) e la copia veloce tramite FileChannel. transferTo. Per valutare le prestazioni utilizziamo sia misurazioni rapide con System. nanoTime(), sia microbenchmark affidabili con JMH. Concluderemo con un mini‑esperimento e l’analisi degli errori tipici.
    Disponibile
  • Fondamenti di JSON: struttura, sintassi, vantaggi

    JAVA 25 SELF
    Livello 46,Lezione 0
    Introduzione breve e moderna al formato di scambio dati JSON: cos’è e perché è diventato lo standard de facto per le REST API, strutture di base — oggetti { } e array [ ], tipi consentiti (stringhe "...", numeri, valori booleani true/ false, null), annidamento, confronto con XML, corrispondenze JSON ↔ Java (collezioni Map<K, V>, HashMap<K, V>). Analizziamo esempi pratici ed errori tipici: apici singoli, virgole in eccesso, undefined, numeri con zeri iniziali.
    Disponibile
  • Jackson — lettura e scrittura di JSON, annotazioni

    JAVA 25 SELF
    Livello 46,Lezione 1
    Jackson — lo standard de facto per lavorare con JSON in Java: dalle semplici operazioni di serializzazione e deserializzazione tramite ObjectMapper alla configurazione fine con le annotazioni @JsonProperty, @JsonIgnore, @JsonInclude, @JsonFormat. In questa lezione vedremo come aggiungerlo ( jackson-databind), leggere e scrivere oggetti e collezioni, fare pretty printing, gestire le date e gli errori tipici, inclusi i generics con TypeReference e i requisiti dei POJO (costruttore senza argomenti, getter/setter).
    Disponibile
  • Gson — serializzazione e deserializzazione, configurazione

    JAVA 25 SELF
    Livello 46,Lezione 2
    In questa lezione analizziamo la libreria Google Gson: guida rapida con i metodi toJson/ fromJson, deserializzazione di collezioni tramite TypeToken<>, configurazione flessibile con GsonBuilder ( setPrettyPrinting, serializeNulls, setDateFormat). Vedremo le annotazioni @SerializedName, @Expose, il versioning con @Since/ @Until, adapter personalizzati tramite TypeAdapter e registerTypeAdapter, e poi un confronto con Jackson e gli errori tipici.
    Disponibile
  • Lavorare con le strutture dinamiche: Map, List, JsonNode

    JAVA 25 SELF
    Livello 46,Lezione 3
    Quando la struttura JSON non è nota in anticipo o cambia spesso, è più comodo lavorare non con classi Java rigide, ma con contenitori universali: Map, List e alberi JSON. Nella lezione vediamo come, con ObjectMapper, leggere i dati in Map<String, Object> e List, come attraversare in modo sicuro l’albero tramite JsonNode e i suoi metodi get/ path/ asText(), nonché l’alternativa con Gson con JsonElement, JsonObject, JsonArray. Concludiamo con la pratica di estrazione della configurazione e l’analisi degli errori tipici.
    Disponibile
  • Convalida JSON: JSON Schema, errori di convalida

    JAVA 25 SELF
    Livello 46,Lezione 4
    Perché e come verificare i dati in ingresso nel formato JSON prima della deserializzazione: analizziamo il contratto sui dati tramite JSON Schema (chiavi type, properties, required, format), convalidiamo in Java con la libreria everit-org/json-schema (caricamento dello schema in Schema, chiamata a validate), gestiamo correttamente ValidationException e generiamo messaggi di errore chiari per utenti e API.
    Disponibile
  • Fondamenti di XML e namespace

    JAVA 25 SELF
    Livello 47,Lezione 0
    Una introduzione breve e pratica a XML: struttura di base (elementi, attributi, nodi di testo, commenti, CDATA), composizione del prologo e, soprattutto, perché servono i namespace e come dichiararli e applicarli tramite gli attributi xmlns e xmlns:prefix. Analizzeremo i prefissi, il namespace predefinito ( xmlns= "URI"), la commistione di diversi «vocabolari» in un unico documento e gli errori tipici di parsing.
    Disponibile
  • Lavorare con DOM e SAX: parsing XML

    JAVA 25 SELF
    Livello 47,Lezione 1
    In questa lezione analizziamo due approcci classici al parsing di XML: il modello ad albero DOM e il modello basato su eventi SAX. Imparerete a leggere e modificare i documenti tramite l'albero ( Document, Element, NodeList) e a elaborare file grandi in streaming con i gestori di eventi ( SAXParser, DefaultHandler, startElement/ characters/ endElement). Mostreremo pro e contro di ciascun approccio, esempi pratici e analizzeremo gli errori tipici (memoria, frammentazione del testo in characters, tentativi di modificare l'XML con SAX).
    Disponibile
  • StAX (Streaming API for XML) — parsing in streaming

    JAVA 25 SELF
    Livello 47,Lezione 2
    Analizziamo il parsing XML in streaming con StAX: in cosa il modello pull differisce dall’approccio push di SAX, come creare un parser tramite XMLInputFactory e leggere gli eventi da XMLStreamReader con un ciclo che chiama reader. next(), quali tipi di eventi esistono ( START_ELEMENT, CHARACTERS, END_ELEMENT, END_DOCUMENT) e quando StAX è preferibile a DOM/ SAX. In più: una tabella di confronto degli approcci, un diagramma Mermaid e l’analisi degli errori tipici (leak di stream/risorse, nidificazione degli elementi, eccezioni XMLStreamException, IOException).
    Disponibile
  • Lavorare con XML tramite JAXB: basi, annotazioni

    JAVA 25 SELF
    Livello 47,Lezione 3
    Come usare JAXB (Jakarta XML Binding) per trasformare oggetti Java in XML e viceversa: annotazioni chiave @XmlRootElement, @XmlElement, @XmlAttribute, @XmlType, @XmlTransient; classi di base JAXBContext, Marshaller, Unmarshaller; impostazione del formato tramite la proprietà Marshaller.JAXB_FORMATTED_OUTPUT. Consideriamo le dipendenze Maven per Java 11+ ( jakarta.xml.bind-api, jaxb-runtime), il lavoro con collezioni e oggetti annidati, la gestione dell’ordine degli elementi ( propOrder), l’esclusione di campi ed errori tipici.
    Disponibile
  • Configurazione della serializzazione XML: adapter personalizzati

    JAVA 25 SELF
    Livello 47,Lezione 4
    Come insegnare a JAXB a serializzare tipi «non standard» e a rappresentare i dati nel formato desiderato: usiamo l’annotazione @XmlJavaTypeAdapter e scriviamo adapter personalizzati basati su XmlAdapter<ValueType, BoundType>. Vedremo la formattazione delle date ( LocalDate → "dd.MM.yyyy"), dei numeri ( BigDecimal), il lavoro con le collezioni, lo spostamento dei valori negli attributi tramite @XmlAttribute, negli elementi tramite @XmlElement e l’esclusione dei campi con @XmlTransient. Faremo pratica di serializzazione/deserializzazione tramite Marshaller/ Unmarshaller e analizzeremo gli errori tipici.
    Disponibile
  • Espressioni lambda: sintassi, ambiti di visibilità

    JAVA 25 SELF
    Livello 48,Lezione 0
    Ripassiamo e approfondiamo le espressioni lambda in Java: sintassi (parametri, freccia ->, corpo), forme brevi senza parentesi e return, relazione con le interfacce funzionali ( Comparator, Runnable, Consumer), esempi quotidiani con liste, thread e Stream API. Analizziamo l’ambito di visibilità e la regola «effettivamente final», la differenza di this nelle lambda e nelle classi anonime, nonché gli errori tipici e come evitarli.
    Disponibile
  • 1
  • ...
  • 20
  • 21
  • 22
  • 23
  • 24
  • ...
  • 30
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