Почему мы используем 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 вопроса
- Как вы будете писать код, если я хочу сериализовать один объект?
- Почему мы используем long_integer id во время сериализации?
Пожалуйста, любой может помочь мне найти ответ на этот вопрос
1 ответ
Позвольте мне процитировать суть из аналогичного и уже отвеченного вопроса
SerialVersionUID представляет версию вашего класса, и вы должны увеличивать ее, если текущая версия вашего класса не обратно совместима с его предыдущей версией.
а также
автоматически сгенерированный UID генерируется на основе имени класса, реализованных интерфейсов и всех открытых и защищенных членов. Изменение любого из них любым способом изменит serialVersionUID. Поэтому вам не нужно связываться с ними, только если вы уверены, что не более одной версии класса никогда не будет сериализовано (либо между процессами, либо получено из хранилища позднее).
Я рекомендую вам посетить эту ссылку и, как всегда, поискать в Интернете.
Надеюсь, это поможет.