Почему мы используем serialVersionUID во время сериализации

В моем интервью я получил один вопрос о том, как добиться сериализации, и я дал ответ как

public class SerializationSample {
    public static void main(String args[]) {
        ...........
        FileOutputStream fos = new FileOutputStream(outFile);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(serializableObject);
        ............
}
class SerializationBox implements Serializable {
    ............
    ............
}

но интервьюер сказал, что это будет сериализовать весь объект, и он задал 2 вопроса

  1. Как вы будете писать код, если я хочу сериализовать один объект?
  2. Почему мы используем long_integer id во время сериализации?

Пожалуйста, любой может помочь мне найти ответ на этот вопрос

1 ответ

Решение

Позвольте мне процитировать суть из аналогичного и уже отвеченного вопроса

SerialVersionUID представляет версию вашего класса, и вы должны увеличивать ее, если текущая версия вашего класса не обратно совместима с его предыдущей версией.

а также

автоматически сгенерированный UID генерируется на основе имени класса, реализованных интерфейсов и всех открытых и защищенных членов. Изменение любого из них любым способом изменит serialVersionUID. Поэтому вам не нужно связываться с ними, только если вы уверены, что не более одной версии класса никогда не будет сериализовано (либо между процессами, либо получено из хранилища позднее).

Я рекомендую вам посетить эту ссылку и, как всегда, поискать в Интернете.

Надеюсь, это поможет.

Другие вопросы по тегам