
? ?
java serialversionuid是什么?讓我們一起來了解一下吧!
java serialversionuid是java程序中的一個判斷標準。serialversionuid運用在java序列化機制中?;蛘哒f,java序列化的機制是可以判斷類的serialversionuid來驗證版本的一致性。

serialVersionUID有兩種顯示的生成方法:
1.默認的1L,比如:private static final long serialVersionUID = 1L;
2.根據包名,繼承關系,類名,非私有的方法和屬性等諸多因子計算得出的,極度復雜生成的一個64位的哈希字段。一般我們計算得出的這個值是唯一的。比如:private static final long? serialVersionUID = xxxxL;注意:顯示聲明serialVersionUID能夠避免對象不一致。
下面是一些常見的情況:
1.序列化實體類
package?com.example.demo.entity.serializable;
?
import?java.io.Serializable;
?
public?class?Persion?implements?Serializable?{
?
????private?static?final?long?serialVersionUID?=?4359709211352400087L;
????public?Long?id;
????public?String?name;
????public?final?String?userName;
?
????public?Persion(Long?id,?String?name){
????????this.id?=?id;
????????this.name?=?name;
????????userName?=?"dddbbb";
????}
?
????public?String?toString()?{
????????return?id.toString()?+?"--"?+?name.toString();
????}
}2.?序列化功能:
package?com.example.demo.entity.serializable;
?
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.ObjectOutputStream;
?
public?class?SerialTest?{
?
????public?static?void?main(String[]?args)?{
????????Persion?p?=?new?Persion(1L,?"王五");
????????System.out.println("person?Seria:"?+?p);
????????try?{
????????????FileOutputStream?fos?=?new?FileOutputStream("Persion.txt");
????????????ObjectOutputStream?oos?=?new?ObjectOutputStream(fos);
????????????oos.writeObject(p);
????????????oos.flush();
????????????oos.close();
????????}?catch?(IOException?e)?{
????????????e.printStackTrace();
????????}
????}
}以上就是小編今天的分享了,希望可以幫助到大家。
