Java 中的可序列化接口和可外部接口之间的区别是什么?

2021-04-29 20:51发布

7条回答

假设你想保存一个或多个对象的状态。如果Java不具备串行化能力,就不得不使用某个I/O类写出你想保存的所有对象的实例变量的状态。
串行化简单地说就是“保存这个对象及其所有实例变量Transient,这意味,不会把瞬态变量的值作为对象的串行化状态的一部分包括进来。”。实际上,更有趣的是,显式地将一个变量标识为
将要实现序列化的类必须实现Serializable接口或者是Externalizable接口。
在Serializable接口中没有定义任何方法,而在Externalizable接口中需要实现
public void writeExternal(ObjectOutput out) throws IOException{}以及
public void readExternal(ObjectInput in) throws IOException,ClassNotFoundException{}抽象方法。

一.实现Serializable接口的序列化
package demo;
import java.io.Serializable;

public class Person implements Serializable

private String name;
private char sex;
private int age;

public Person(String name,char sex,int age)
{
this.name=name;
this.sex=sex;
this.age=age; 
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public char getSex()
{
return sex;
}

public void setSex(char sex)
{
this.sex = sex;
}

public int getAge()
{
return age;
}

public void setAge(int age)
{
this.age = age;
}

public String toString()
{
return getName()+", "+getSex()+", "+getAge();
}

}

一周热门 更多>