? ?
java serialversionuid是什么?讓我們一起來了解一下吧!
java serialversionuid是java程序中的一個判斷標準。serialversionuid運用在java序列化機制中。或者說,java序列化的機制是可以判斷類的serialversionuid來驗證版本的一致性。
serialVersionUID有兩種顯示的生成方法:
1.默認的1L,比如:private static final long serialVersionUID = 1L;
2.根據(jù)包名,繼承關(guān)系,類名,非私有的方法和屬性等諸多因子計算得出的,極度復(fù)雜生成的一個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(); ????????} ????} }
以上就是小編今天的分享了,希望可以幫助到大家。