сериализация по сравнению с десериализацией в java

Вы никогда не должны называть деструктора самостоятельно. delete вызовет его для вас

0
задан Elena 13 July 2018 в 13:39
поделиться

1 ответ

  1. Это может выглядеть по-разному в зависимости от версии Java, вашего ПК (например, порядка байтов, разного размера заголовка объекта на 64/32 битных системах или даже флагов JVM) и всего. Он также содержит много данных, которые нам не нужны при сериализации, такие как информация об сборке мусора, блокировки, внутренний / системный хеш-код и т. Д. Вы можете узнать больше, просмотрев заголовок объекта: Что находится в заголовке объекта java Но ведь весь объект - это всего лишь несколько байтов в памяти.
  2. Основная цель сериализации - создать стандартизованную форму - так что вы можете позже легко читать без зависимости от вашей архитектуры, системы и без данных, которые вам не нужны, как GC one. Это может быть некоторый необработанный двоичный формат, такой как стандартная java-сериализация, или некоторый бинарный json - или некоторые текстовые форматы, такие как json, yaml, xml. (текст также байт, но, безусловно, намного проще отображать и читать люди). Также прочтите этот вопрос для получения дополнительной информации о самой сериализации: Что такое сериализация?
  3. Это ваш выбор - вы отправляете этот объект, поэтому вам нужно его сериализовать, на некоторых языках (в java тоже, если вы будете использовать некоторую небезопасную магию), можно просто отправить те же данные, что и в памяти, но в большинстве случаев это действительно плохая идея. Поэтому, отправляя данные по сети, вы должны сначала ее сериализовать.
1
ответ дан GotoFinal 17 August 2018 в 12:42
поделиться
  • 1
    & Quot; можно просто отправить те же данные, что и в памяти, но в большинстве случаев это действительно плохая идея. & quot; Зачем ? – Elena 13 July 2018 в 14:28
  • 2
    @Elena, потому что тогда вы, возможно, не сможете его использовать, потому что вы отправите его на ПК, ожидающий разную архитектуру. В java я не уверен, можно ли вообще использовать такой объект после ввода его в память - никогда не пытались сделать что-то странное – GotoFinal 13 July 2018 в 14:30
Другие вопросы по тегам:

Похожие вопросы: