2013-09-18 3 views
3

В моем интервью я получил один вопрос, как для того чтобы достигнуть Сериализация и я дал ответ, какПочему мы используем 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

Вы спросили об этом Google? Бьюсь об заклад, это даст вам ответы быстрее. – SudoRahul

+0

i did not получил Q1 в google – Som

+0

Я не уверен, что он означает сериализацию одноэлементного класса. Если это так, то его уже [ответили] (http://stackoverflow.com/questions/3930181/how-to-deal-with-singleton-along-with-serialization) на SO – ch4nd4n

ответ

1

Процитирует суть от similar and already answered question

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

и

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

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

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

Смежные вопросы