Сериализация - это процесс преобразования информации о состоянии объекта в форму, которая может быть сохранена или передана. Как правило, объект хранится в среде для хранения, например, архивы или буферы цитирования. Во время передачи сети это может быть в таких форматах, как байты или XML. Форматы кодирования байта или XML могут восстановить совершенно равные объекты. Этот противоположный процесс также называется десериализацией .
Сериализация и десериализация объектов Java <br /> В Java мы можем создавать объекты во многих отношениях, и мы можем повторно использовать объект, пока объект не переработан. Тем не менее, объекты Java, которые мы создаем, существуют в память о куче JVM. Эти объекты могут существовать только тогда, когда JVM находится в состоянии управления. Как только JVM прекращается, состояние этих объектов теряется.
Тем не менее, в реальных сценариях приложения нам необходимо сохранить эти объекты и иметь возможность перечитывать объекты при необходимости. Сериализация объекта Java может помочь нам реализовать эту функцию.
Механизм сериализации объекта-это встроенный метод стойкости объекта на языке Java. Благодаря сериализации объектов состояние объекта может быть сохранено в виде байтовой массивы, и этот байтовый массив может быть преобразован в объект посредством пустыней при необходимости. Сериализация объекта может быть легко преобразована между активными объектами и байтскими массивами (потоками) в JVM.
В Java сериализация и десериализация объектов широко используются в RMI (удаленные вызовы методов) и сетевую передачу.
Связанные интерфейсы и классы Java обеспечивают удобный API для поддержки его для того, чтобы облегчить разработчикам сериализовать и десериализировать объекты Java. Это включает в себя следующие интерфейсы и классы:
Класс позволяет свою функциональность сериализации, внедряя интерфейс Java.io.iserializable. Классы, которые не реализуют этот интерфейс, не смогут сериализовать или десериализовать любое из их состояний. Все подтипы сериализуемого класса сами по себе сериализуются. Интерфейс сериализации не имеет методов или полей и используется только для определения сериализуемой семантики. (Этот интерфейс не имеет методов и полей, так почему могут быть сериализованы только объекты класса, которые реализуют интерфейс?)
При попытке сериализовать объект, если встречается объект, который не поддерживает сериализуемый интерфейс. В этом случае нецериализуемое экспрессия выбрасывается.
Если класс, который должен быть сериализован, имеет родительский класс, и если вы хотите сохранить переменные, определенные в родительском классе одновременно, родительский класс также должен интегрировать интерфейс java.io.io.serializable.
Вот класс, который реализует java.io.serializable интерфейс
пакет com.hollischaung.serialization.serializabledemos; import java.io.serializable;/*** Создан Hollis на 16/2/17.*Реализация сериализуемого интерфейса*/public class user1 реализует сериализируемые {private String name; private int age; public getName () {return name;} public stem setname setname (string name) vame void name (ntaMe vame (ntaMe vame (ntaMe vame vame (ntaMe vame)} name;} public int getage () {return Age;} public void setage (int age) {this.age = age;}@overridepublic string toString () {return "user {" + "name = '" + name +'/'' + ", age =" + age + '}';}}}}}}}}}}}}}}}}}}}}}} Сериализация и десериализация через следующий код
пакет com.hollischaung.serialization.serializabledemos; import org.apache.commons.io.fileutils; import org.apache.commons.io.ioutils; import java.io. быть сериализованным*/public class serializabledemo1 {public static void main (string [] args) {// инициализирует objectUser1 user = new user1 (); user.setname ("hollis"); user.setage (23); system.out.println (user); // obhjective -newStream newStream = nul FileOutputStream ("tempfile")); oos.WriteObject (user);} catch (ioException e) {e.printstacktrace ();} наконец {ioutils.closequietly (oos);} // Читать obj из файла файла filefile = new file ("tempfile"); FileInputStream (file)); user1 newuser = (user1) ois.readobject (); system.out.println (newuser);} catch (ioexception e) {e.printstacktrace ();} catch (classnotfoundexception e) {e.printstacktrace (); {{{iout quosexception E) {FileUtils.forceDelete (file);} catch (ioException e) {e.printstacktrace ();}}}}} // output: // user {name = 'hollis', age = 23} // user {name = 'hollis', age = 23}Выше всего об этой статье. Я надеюсь, что для всех будет полезно изучать сериализацию объектов и деестеризацию в Java.