Главная

Java


Сериализация и десериализация Java объектов:

Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Десериализация — это процесс восстановления объекта из этих байт.

Существует два способа сделать объект сериализуемым:



Если добавить оператор transient — значение этого поля не будет сериализовано.



Можно использовать утилиту serialver, входящую в поставку SDK или
UID можно сгенерировать через IDEA

private static final long serialVersionUID =;
    Alt + Enter
serializable


Пример классов:


public class NeuralNetwork implements Serializable {
    private static final long serialVersionUID = 415036214236198720L;
    private Layer[] layers;
    private transient NeuralNetworkFunctionName activationName;
    private transient NeuralNetworkFunctionName derivativeName;


public class Layer implements Serializable {
    private static final long serialVersionUID = 9216696740948170978L;


Пример Сериализация объекта:


NeuralNetwork nn = new NeuralNetwork(LEARNING_RATE, ACTIVATION, DERIVATIVE, 784, 512, 128, 32, 10);

FileOutputStream outputStream = new FileOutputStream(NEURAL_NETWORK_PATH + "/digit-epochs-" + EPOCHS + ".dat");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);

objectOutputStream.writeObject(nn);
objectOutputStream.close();


Пример Десериализации объекта:


FileInputStream fileInputStream = new FileInputStream(NEURAL_NETWORK_PATH + "/digit-epochs-" + EPOCHS + ".dat");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);

NeuralNetwork neuralNetwork = (NeuralNetwork) objectInputStream.readObject();


Полезные ссылки.