← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

A serialização de objetos na linguagem de programação Java permite representar o estado de um objeto como uma sequência de bytes que podem ser armazenados em um arquivo ou banco de dados. Para impedir que o conteúdo de determinado atributo seja convertido em bytes no processo padrão de serialização, este atributo deve ser declarado na classe com o modificador

Gabarito: D

Na serialização em Java, o programa transforma o estado de um objeto em bytes para guardar em arquivo, enviar pela rede ou persistir em banco. Só que nem todo atributo precisa viajar junto nessa “mala de bytes”. Alguns campos podem ser ignorados pelo mecanismo padrão de serialização, e é aí que entra o modificador certo. Quando você declara um atributo como transient, você está dizendo para a JVM não serializar aquele campo no processo padrão. Em outras palavras, o atributo fica fora da foto oficial do objeto quando ele é convertido em bytes. Se o objeto for desserializado depois, esse campo não vem salvo e assume o valor padrão da linguagem. Isso é diferente de final, volatile, native e synchronized, que têm outras funções na linguagem, mas não servem para excluir um atributo da serialização. A própria especificação do Java Serialization trata transient como o marcador para campos que não devem ser persistidos automaticamente. Então o gabarito é D porque transient é o modificador usado exatamente para impedir que o conteúdo do atributo seja convertido em bytes na serialização padrão. É a clássica palavra-chave que faz o campo “sumir” da mala de viagem do objeto.

Continue treinando

Questões relacionadas