- Это может выглядеть по-разному в зависимости от версии Java, вашего ПК (например, порядка байтов, разного размера заголовка объекта на 64/32 битных системах или даже флагов JVM) и всего. Он также содержит много данных, которые нам не нужны при сериализации, такие как информация об сборке мусора, блокировки, внутренний / системный хеш-код и т. Д. Вы можете узнать больше, просмотрев заголовок объекта: Что находится в заголовке объекта java Но ведь весь объект - это всего лишь несколько байтов в памяти.
- Основная цель сериализации - создать стандартизованную форму - так что вы можете позже легко читать без зависимости от вашей архитектуры, системы и без данных, которые вам не нужны, как GC one. Это может быть некоторый необработанный двоичный формат, такой как стандартная java-сериализация, или некоторый бинарный json - или некоторые текстовые форматы, такие как json, yaml, xml. (текст также байт, но, безусловно, намного проще отображать и читать люди). Также прочтите этот вопрос для получения дополнительной информации о самой сериализации: Что такое сериализация?
- Это ваш выбор - вы отправляете этот объект, поэтому вам нужно его сериализовать, на некоторых языках (в java тоже, если вы будете использовать некоторую небезопасную магию), можно просто отправить те же данные, что и в памяти, но в большинстве случаев это действительно плохая идея. Поэтому, отправляя данные по сети, вы должны сначала ее сериализовать.
ответ дан GotoFinal 17 August 2018 в 12:42
поделиться