温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java如何实现序列化

发布时间:2020-06-12 19:34:38 来源:亿速云 阅读:115 作者:鸽子 栏目:编程语言

1、实现序列化:

1)使用Serializable接口实现序列化

首先我们定义一个对象类User

public class User implements Serializable {
    //序列化ID
    private static final long serialVersionUID = 1L;
    private int age;
    private String name;
    //getter和setter方法、
    //toString方法}

接下来,在Test类中去实现序列化和反序列化。

public class Test {
    public static void main(String[] args) throws Exception, IOException {
        //SerializeUser();
        DeSerializeUser();
    }
    //序列化方法
    private static void SerializeUser() throws FileNotFoundException, IOException {
        User user = new User();
        user.setName("Java的架构师技术栈");
        user.setAge(24);
        //序列化对象到文件中
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("G://Test/template"));
        oos.writeObject(user);
        oos.close();
        System.out.println("序列化对象成功");
    }
    //反序列化方法
    private static void DeSerializeUser() throws FileNotFoundException, IOException{
        File file = new File("G://Test/template");
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
        User newUser = (User)ois.readObject();
        System.out.println("反序列化对象成功"+newUser.toString());
    }}

2)使用Externalizable接口实现序列化

首先,定义一个User1类

public class User1 implements Externalizable{
    private int age;
    private String name;
    //getter、setter
    //toString方法
    
    public User1() {}
    
    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
    }
    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    }}

Externalizable和Serializable接口的区别:

1)Externalizable继承自Serializable接口

2)需要我们重写writeExternal()与readExternal()方法

3)实现Externalizable接口的类必须要提供一个public的无参的构造器。

2、作用:

1)序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,可以对流化后的对象进行读写操作,也可以将流化后的对象传输与网络之间;

2)为了解决对象流读写操作时可能引发的问题(如果不进行序列化,可能会存在数据乱序的问题)

3)序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆

3、序列化的使用场景

1)永久性保存对象,保存对象的字节序列到本地文件或者数据库中;

2)通过序列化以字节流的形式使对象在网络中进行传递和接收;

3)通过序列化在进程间传递对象;

以上就是java实现序列化的方法的详细内容,更多请关注亿速云其它相关文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI