2016-06-06 3 views
1
  1. Я заметил, что многие из классов библиотеки «ArrayList», «String» даже исключения имеют serialVersionUID. Почему они сделали это так. Каково практическое использование этого. FYI Я знаком с концепцией сериализации. Пожалуйста, укажите его практическую цель.

Для справки найти serialversionUid для ClassCastExceptionЧто такое создание сериализуемых классов?

public class ClassCastException extends RuntimeException { 
private static final long serialVersionUID = -9223365651070458532L; 

Где состояние этих объектов будет сохраняться? И где будут восстанавливаться эти объекты?

  1. В настоящее время я работаю над проектом, в котором мы создаем контроллеры REST, чьи входные и выходные параметры будут JSON. Мы создаем простые POJO для параметров i/p и o/p. Я видел, как люди делают эти ПОЖО сериализуемыми. Что это значит?

Но я видел **out.readObject** гавань или out.writeobject, который используется для записи и чтения состояния object.Will состояния в Pojo по-прежнему не решены только что делает его сериализации? Если да, где он будет храниться?

+0

* изложат Pojo по-прежнему не решены только что делает его сериализации? * Нет, это persistable. * Если да, где он будет сохранен? * Где бы вы его не хранили. –

+1

«Пожалуйста, укажите на практическую цель». - чтобы они могли быть сериализованы? Например, для хранения в файле или передачи по сети с помощью RMI и т. Д. –

+0

В моих вторых qs POJO просто сериализуемы. Ничего не написано, чтобы упорствовать в этом. Я упомянул об этом в qs. Так что это не будет продолжаться автоматически. И plz ответьте на оба моих вопроса, если сможете. –

ответ

3

Если вам нужна полная история, прочитайте спецификацию: Java Object Serialization Specification.

[...] Многие из классов библиотеки «ArrayList», «String», даже исключения имеют serialVersionUID. Почему они сделали это так.

Для поддержки обратной совместимости при чтении объектов, которые были написаны в старой версии класса. См. Stream Unique Identifiers.

Состояние этого объекта будет сохраняться?

Где бы вы ни решили. См. Writing to an Object Stream.

И где будут восстановлены эти объекты?

Куда ни вы положите. См. Reading from an Object Stream.

[...] входные и выходные параметры будут JSON. [...] Я видел людей, делающих эти POJO сериализуемыми. В чем смысл этого?

Отсутствует. JSON не использует сериализацию Java. Сериализация Java создает двоичный поток. JSON создает текст.

Будет ли состояние POJO сохраняться, только делая его сериализуемым? Если да, где он будет храниться?

Нет, см. Выше.

Смежные вопросы