<link rel="stylesheet" href="https://js.how234.com/33ae093f85/2aa40b228689631e215b4899cf523297aa/2aa91c3a8282/2ab526399594.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/33ae093f85/2aa40b228689631e215b4899cf523297aa/2aa91c3a8282/2ab5313e829c6e3323554585c44e.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><style>pre{overflow-x: auto}</style>
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
java serialversionuid是什么?让我们一起来了解一下吧!
java serialversionuid是java程序中的一个判断标准。serialversionuid运用在java序列化机制中。或者说,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(); } }}