
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();
}
}
}以上就是小编今天的分享了,希望可以帮助到大家。
