Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java序列化的作用

作者:木の兮   发布日期:2026-04-06   浏览:24

import java.io.*;

class Person implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;

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

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}

public class SerializationExample {
    public static void main(String[] args) {
        // 创建一个Person对象
        Person person = new Person("Alice", 30);

        // 序列化过程:将对象写入文件
        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
            oos.writeObject(person);
            System.out.println("对象已序列化并保存到文件");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 反序列化过程:从文件中读取对象
        Person deserializedPerson = null;
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser"))) {
            deserializedPerson = (Person) ois.readObject();
            System.out.println("从文件中反序列化对象: " + deserializedPerson);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

解释说明:

  1. 序列化的作用:Java序列化是将对象的状态转换为字节流的过程,以便可以将其存储在文件、数据库或通过网络传输。反序列化则是将字节流恢复为对象的过程。
  2. Serializable接口:为了使一个类的对象能够被序列化,该类必须实现Serializable接口。这个接口是一个标记接口,没有方法需要实现。
  3. serialVersionUID:这是序列化版本UID,用于确保序列化的类版本与反序列化的类版本一致。如果不显式定义,JVM会自动生成一个,但不推荐依赖默认生成的值。
  4. ObjectOutputStreamObjectInputStream:这两个类分别用于将对象序列化为字节流和从字节流中反序列化对象。
  5. 示例代码:上述代码展示了如何创建一个Person对象,将其序列化到文件中,然后再从文件中反序列化出来。

上一篇:查询java版本命令

下一篇:java file转base64

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站