CodeGym
AI Academy
Promoção
CodeGym University
Aprendizagem
Cursos
Tarefas
Pesquisas & Questionários
Jogos
Ajuda
Cronograma
Comunidade
Usuários
Fórum
Chat
Artigos
Histórias de sucesso
Atividade
Avaliações
Assinaturas
Tema claro

Aulas

  • Avaliações
  • Sobre nós
Iniciar
Comece a aprender
Comece a aprender agora
  • Meu progresso
  • Cursos
  • Mapa da Missão
  • Aulas
  • Problemas da serialização binária: segurança, compatibilidade

    JAVA 25 SELF
    Nível 45,Aula 0
    Nesta aula, analisamos os riscos da serialização binária em Java: por que a desserialização de fontes não confiáveis é perigosa (cadeias “gadget chain”, RCE), quais riscos trazem métodos especiais como readObject e readResolve, e como se proteger (lista de permissões — whitelisting, abandono em favor de JSON/ XML, bibliotecas seguras como Jackson). Examinaremos em detalhe a compatibilidade entre versões de classes e o papel do campo serialVersionUID, o comportamento em InvalidClassException, as restrições de transient/ static, desempenho, além de boas práticas e erros comuns.
    Disponível
  • Serialização de coleções com generics: particularidades

    JAVA 25 SELF
    Nível 45,Aula 1
    Vamos analisar como o apagamento de tipos ( type erasure) afeta a serialização de coleções com generics: por que, em tempo de execução, List<String> e List<Integer> são o mesmo ArrayList, o que exatamente é gravado e lido via ObjectOutputStream/ ObjectInputStream, de onde vêm ClassCastException e os avisos de casts unchecked. Mostraremos exemplos com coleções aninhadas, Map/ Set, mencionaremos Gson/ Jackson e formularemos práticas de desserialização segura.
    Disponível
  • Compatibilidade e compatibilidade retroativa (backward compatibility) na serialização

    JAVA 25 SELF
    Nível 45,Aula 2
    Analisamos como evoluir classes serializáveis sem quebrar os dados: por que fixar o serialVersionUID, como a JVM verifica a compatibilidade, quais mudanças são seguras (adição/remoção de campos) e quais são críticas (troca de tipo, mover a classe para outro pacote). Mostramos o papel de transient/ static, técnicas de serialização customizada via writeObject/ readObject, a diferença entre serialização binária e XML/JSON, estratégias para garantir compatibilidade e erros típicos (por exemplo, InvalidClassException).
    Disponível
  • Migração e versionamento de dados serializados

    JAVA 25 SELF
    Nível 45,Aula 3
    Como evoluir com segurança classes serializáveis em produção: o que acontece ao alterar campos e tipos, como funciona a versão da classe via serialVersionUID, quando mudá-la e quando mantê-la, como aplicar migração “preguiçosa” via readObject/ readFields e conversão “in-place”, e quais são as técnicas avançadas como ObjectInputStream.readClassDescriptor(). Vamos analisar um cenário prático completo com duas versões da classe e erros típicos, incluindo armadilhas de InvalidClassException.
    Disponível
  • Compressão e perfilamento da serialização

    JAVA 25 SELF
    Nível 45,Aula 4
    Como reduzir o tamanho e acelerar a serialização de objetos em Java: excluímos campos desnecessários com transient, assumimos controle total por meio de Externalizable, aplicamos compressão em fluxo ( GZIPOutputStream, ZipOutputStream), aceleramos o I/O com bufferização ( BufferedOutputStream, BufferedInputStream) e cópia rápida via FileChannel. transferTo. Para avaliar o desempenho, usamos tanto medições rápidas com System. nanoTime(), quanto microbenchmarks confiáveis com JMH. Encerramos com um mini‑experimento e uma análise de erros comuns.
    Disponível
Aprender
  • Cadastro
  • Curso de Java
  • Ajuda com Tarefas
  • Preços
  • Sintaxe Java
Comunidade
  • Usuários
  • Artigos
  • Fórum
  • Chat
  • Histórias de sucesso
  • Atividade
  • Programa de afiliados
Empresa
  • Sobre nós
  • Contatos
  • Avaliações
  • Sala de imprensa
  • CodeGym for EDU
  • Perguntas frequentes
  • Suporte
CodeGymCodeGym é um curso online para aprender programação Java do zero. Este curso é uma maneira perfeita de dominar Java para iniciantes. Contém mais de 1.200 tarefas com verificação instantânea e um escopo essencial da teoria dos fundamentos de Java. Para ajudar você a ter sucesso nos estudos, implementamos um conjunto de recursos motivacionais: questionários, projetos de programação, conteúdo sobre aprendizagem eficiente e carreira de desenvolvedor Java.
Siga-nos
Idioma da interface
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
"Programadores se formam, não nascem" © 2026 CodeGym
MastercardVisa
"Programadores se formam, não nascem" © 2026 CodeGym