A serialização é um processo de conversão das informações de estado de um objeto em um formulário que pode ser armazenado ou transmitido. Geralmente, um objeto é armazenado em um meio de armazenamento, como arquivos ou buffers de citação. Durante a transmissão da rede, pode estar em formatos como bytes ou XML. Os formatos de codificação de byte ou XML podem restaurar objetos completamente iguais. Esse processo oposto também é chamado de desserialização .
Serialização e deserialização de objetos Java <Br /> em Java, podemos criar objetos de várias maneiras, e podemos reutilizar o objeto enquanto o objeto não for reciclado. No entanto, os objetos Java que criamos existem na memória Heap da JVM. Esses objetos só podem existir quando a JVM estiver em estado de corrida. Uma vez que a JVM para de funcionar, o estado desses objetos é perdido.
No entanto, em cenários de aplicação reais, precisamos persistir esses objetos e poder reler os objetos quando necessário. A serialização do objeto Java pode nos ajudar a implementar essa função.
O mecanismo de serialização do objeto é um método de persistência de objeto interno no idioma Java. Através da serialização do objeto, o estado do objeto pode ser salvo como uma matriz de bytes, e essa matriz de bytes pode ser convertida em um objeto por meio de desserialização quando necessário. A serialização do objeto pode ser facilmente convertida entre objetos ativos e matrizes de bytes (fluxos) na JVM.
Em Java, a serialização e a deserialização dos objetos são amplamente utilizadas no RMI (chamadas de método remoto) e na transmissão de rede.
As interfaces relacionadas e as classes Java fornecem uma API conveniente para apoiá -la, a fim de facilitar os desenvolvedores a serializar e desserializam objetos Java. Isso inclui as seguintes interfaces e classes:
A classe permite sua funcionalidade de serialização implementando a interface java.io.Serializable. As classes que não implementam essa interface não serão capazes de serializar ou desserializar nenhum de seus estados. Todos os subtipos de uma classe serializável são eles mesmos serializáveis. A interface de serialização não possui métodos ou campos e é usada apenas para identificar a semântica serializável. (Esta interface não possui métodos e campos, então por que apenas objetos da classe que implementa a interface são serializados?)
Ao tentar serializar um objeto, se um objeto for encontrado, que não suporta a interface serializável. Nesse caso, uma não -renda é lançada.
Se a classe a ser serializada tiver uma classe pai e se você quiser persistir as variáveis definidas na classe pai ao mesmo tempo, a classe pai também deve integrar a interface java.io.Serializable.
Aqui está uma classe que implementa a interface java.io.Serializable
pacote com.hollischaung.serialization.SerializableDemos; importar java.io.Serializable;/*** criado por Hollis em 16/2/17.*Implementando a interface serializável*/public class User1 Nome; nome;} public int getage () {retorna idade;} public void setage (int Age) {this.age = Age;}@SubstridePublic string tostring () {return "user {" + "name = '" + name +'/' + ", idade =" + idade +'};}}}}} Serialização e desserialização através do seguinte código
pacote com.hollischaung.serialization.SerializableDemos; importar org.apache.commons.io.fileutils; importar org.apache.commons.io.ioutils; import java.io. ele quer ser serializado*/public class SerializableDemo1 {public static void main (string [] args) {// inicializa o objectUser1 usuário = new user1 (); user.setName ("hollis"); user.setage (23); system.out.println (user); // writebjust to FileBject (23); FileOutputStream ("tempfile"))); oos.WriteObject (User);} Catch (ioException e) {e.printStackTrace ();} finalmente {ioutils.closeQuietly (ooS);} // leia obj do arquivo file = new File ("TEMPFILE"); FileInputStream (FILE); User1 newUser = (User1) OIS.readObject (); System.out.println (newUser);} catch (ioexception e) {e.printStacktrace ();} Catch (ClassNotFoundException e) {E.PrintStacktrace (); Finalmente; {Fileutils.forcedelete (file);} catch (ioexception e) {e.printStackTrace ();}}}}} // output: // user {name = 'hollis', idade = 23} // user {name = 'hollis', idade = 23}O acima é tudo sobre este artigo. Espero que seja útil que todos aprendam serialização de objetos e desserialização em Java.