在Java中java.io.Serializable 用于实现对象的序列化而开发的接口。
java.io.Serializable接口是一个没有任何方法和属性的接口只提供一个标示的作用。
所有要序列化的对象都要实现Serializable接口。
未实现序列化接口的对象进行序列化的时候发生的错误。
java.io.NotSerializableException: com.javaeye.xiaobian.seri.User
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at com.javaeye.xiaobian.seri.SerialzeTest.main(SerialzeTest.java:19)
序列化:
File test = new File("e:\\test.seri");
FileOutputStream out = new FileOutputStream(test);
ObjectOutputStream oout = new ObjectOutputStream(out);
User user = new User();
user.setName("example1");
oout.writeObject(user);
FileInputStream in = new FileInputStream(test);
ObjectInputStream oin = new ObjectInputStream(in);
User u = (User) oin.readObject();
System.out.println(u.getName());
System.out.println(u.getPass());
User类:
public class User implements Serializable {
private static final long serialVersionUID = -7020619477594468968L;
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
serialVersionUID的作用:
1.先保存一个序列化的对象User。
2.更改对象的属性添加Pass属性。
3.反序列化User对象这个时候获取的Pass属性为null。
4.如果没有serialVersionUID属性则会抛出异常。
分享到:
相关推荐
实现 `Serializable` 接口后,可以通过 `java.io.ObjectOutputStream` 将对象写入文件或通过网络传输,也可以使用 `java.io.ObjectInputStream` 从文件读取对象或将对象从网络接收。 #### 三、序列化过程 序列化的...
NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不implement Serializable 接口的对象时。今天,我们将讨论 Java 中序列化 NotSerializableException 问题的解决办法。 问题描述 --------...
在Java编程语言中,API(Application Programming Interface)是一组预先定义的类、接口、方法和其他资源,它们为开发者提供了构建应用程序的标准工具。Java API接口是其中的关键部分,它定义了类之间的交互方式,...
在Java序列化过程中,经常会遇到`java.io.InvalidClassException`异常,特别是在序列化类时如果类的版本与反序列化环境中的类版本不一致的情况下。此类异常通常是因为序列化运行时所期望的序列化标识符...
IBM-ETP的Java培训课程针对这一主题进行深入探讨,旨在帮助开发者熟练掌握IO流的概念、使用方法以及在实际项目中的应用。以下是对Java IO系统的一些关键知识点的详细阐述: 1. **IO流的概念**:在Java中,IO流是...
这个过程涉及到`java.io.Serializable`接口,任何需要被序列化的类都必须实现这个接口。以下是一个简单的序列化和反序列化的例子: ```java import java.io.*; class Student implements Serializable { String ...
java.lang.Throwable (implements java.io.Serializable) java.lang.Exception java.lang.RuntimeException com.opensymphony.xwork2.XWorkException (implements com.opensymphony.xwork2.util.location.Locatable...
在这个“javaIO流基础.zip”压缩包中,我们能看到一系列与文件上传和下载相关的Java代码示例,涵盖了多种IO流类型及其用法。 首先,`TestFileOutputStream.java`和`TestFileInputStream.java`涉及到的是文件输入流...
java中的IO操作总结(四) 前面已经把java io的主要操作讲完了 这一节我们来说说关于java io的其他内容 Serializable序列化 实例1:对象的序列化 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...
24. `java.io.Serializable`:Serializable接口用于对象序列化,允许对象的状态被保存和恢复。 25. `java.util.LinkedList`:LinkedList是双向链表实现的List,适合频繁插入和删除操作。 26. `java.text....
Java.io包是Java编程语言中的核心包之一,它包含了用于输入/输出操作的类和接口。这个包在Java中扮演着至关重要的角色,因为它提供了处理数据流、字符流、对象序列化、文件读写以及与操作系统交互的各种工具。在本...
Java中的Serializable接口是java.io包中定义的,用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的语义。实现了Serializable接口的类...
在Java中,我们可以使用`java.io.Serializable`接口标记需要序列化的类,然后利用`ObjectOutputStream`进行序列化,`ObjectInputStream`进行反序列化。 1. **序列化**:当一个对象需要被保存或者在网络上传输时,...
以上只是Java面试中的一部分内容,涵盖的领域包括基础语法、集合框架、多线程、内存管理和IO流等。对于面试者来说,深入理解这些概念并能灵活运用是至关重要的。此外,面试中还可能涉及异常处理、设计模式、JVM原理...
在 Java 中,为了实现序列化,一个对象需要实现 `Serializable` 接口,这是一个标记接口,表明对象可以被序列化处理。通过 `ObjectOutputStream`,我们可以将对象写入字节流,如文件或网络连接。例如: ```java ...
可以使用 Serializable 接口实现 Java 序列化。 2. 一个".java"源文件中是否可以包括多个类:可以,但 main 类只能有一个。 3. 排序算法:有 Bubble Sort、 Selection Sort、 Insertion Sort、 Merge Sort、 Quick ...
3. `java.io`包:包含用于输入/输出操作的类和接口,如`File`用于文件操作,`InputStream`和`OutputStream`代表数据流,`BufferedReader`和`PrintWriter`用于文本读写,以及`Serializable`接口用于对象序列化。...
当实现 `java.io.Serializable` 接口的类未明确声明 `serialVersionUID` 时,Java 序列化机制将根据编译后的 Class 文件自动生成一个 `serialVersionUID`。此规则下,即使多次重新编译,只要 Class 文件内容不变...
在Java中,通过实现`Serializable`接口,可以方便地进行对象的序列化操作。序列化的核心在于能够将对象的状态转换为可以存储或传输的形式,从而实现对象的持久化和远程通信等功能。 #### 二、序列化的应用场景 ...