Много раз встречал эту "сериализацию" на разных ресурсах, часто связано с JSON. Объясните, пожалуйста, простыми словами, что такое сериализация, где и зачем ее применяют ?
Ответ Сериализация — это преобразование объекта или дерева объектов в какой-либо формат (обычно текстовый или в набор байт) с тем, чтобы потом исходные объекты можно было восстановить из этого формата. Используется, например, для сохранения состояния программы (то есть, некоторых её объектов) между запусками. Или для передачи данных между различными экземплярами программы (или различными программами), например, по сети. Главная идея состоит в том, что сериализованный формат — набор байт или строка, которую можно легко сохранить на диск или передать другому процессу (возможно, находящемуся на другом хосте), в отличие от самого объекта. А значит, задача сохранения/передачи объекта (или группы объектов) при этом сводится к простой задаче сохранения/передачи набора байт или строки. JSON — один из популярных форматов для сериализации, он текстовый, легковесный и легко читается человеком. Пример: если у вас есть класс class Test { int length String name public Test(int length, String name) { this.length = length this.name = name } } Объект этого класса в сериализованной форме может иметь вид { "length": 25, "name": "Имя" } Саму сериализацию (и десериализацию) можно производить вручную, или пользоваться соответствующими библиотеками/фреймворками. Существуют и бинарные форматы сериализации, например, protobuf.