🍵Java对象的序列化和反序列化
知道了PHP的序列化,我竟然不会Java序列化,学! 先学个单词 Serialize v.序列化 英 [ˈsɪəriəlaɪz] 美 [ˈsɪriəlaɪz] 什么是对象的序列化 在Java中,序列化是指将对象转换为字节流的过程。序列化可以实现对象的持久化,转为字节流之后可以将其保存到文件、数据库或者在网络中传输。 **那什么是持久化呢?**持久化就是将内存中的数据保存起来使它能够长期存在。比如我把某个Java对象保存到本地的一个文件,下次使用的时候再反序列化出来用。 反序列就是逆过程,把字节流转化为对象。使字节流在内存中重新创建一个实际的Java对象。 下面是一个例子,不能说看完例子就学会实例化了,写代码的时候往往有很多情况和细节,这时候就需要多写一写代码,多思考了。(这是我对自己说的)不要只看文章前面 Java代码实现(例子) //代码由GPT提供 import java.io.*; // 定义一个可序列化的类 class Person implements Serializable { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } } public class SerializationExample { public static void main(String[] args) { Person person = new Person("Alice", 30); // 序列化对象 try { FileOutputStream fileOut = new FileOutputStream("person.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(person); out.close(); fileOut.close(); System.out.println("对象已序列化并保存到person.ser文件中"); } catch (IOException e) { e.printStackTrace(); } // 反序列化对象 try { FileInputStream fileIn = new FileInputStream("person.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); Person deserializedPerson = (Person) in.readObject(); in.close(); fileIn.close(); System.out.println("从person.ser文件中反序列化对象:" + deserializedPerson.name + " " + deserializedPerson.age); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } 对象流 ObjectInputStream类和ObjectOutputStream类创建的对象称为对象输入流和对象输出流。 ...