import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class TestCreator implements Serializable{
public String name;
public TestCreator(String s){
this.name=s;
}
// static TestCreator(){
//
// }
public static void main(String args[]){
try {TestClass t=new TestClass("123");
ObjectOutputStream out =new ObjectOutputStream(new FileOutputStream("test.out"));
out.writeObject(t);
out.close();
ObjectInputStream in =new ObjectInputStream(new FileInputStream("test.out"));
TestCreator t1=(TestClass)in.readObject();
in.close();
System.out.println(t1.name);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class TestClass extends TestCreator{
public TestClass(String s) {
super(s);
this.name=this.name+"sss";
// TODO Auto-generated constructor stub
}
/**
*
*/
// private static final long serialVersionUID = 1L;
}
例子中TestClass 继承了TestCreator类,但是没有显示的声明实现serializable接口,但是仍然可以实现序列化
同时从继承的原理也可以理解这一点,父类的父类也是子类的父类
分享到:
相关推荐
通常,这种形式是字节流,但也可以是其他格式,如 XML 或 JSON 等。序列化的主要用途包括: - **对象持久化**:将对象状态保存到磁盘等持久性存储介质中。 - **网络传输**:通过网络传输对象状态。 - **对象克隆**...
Java中的序列化主要是通过实现`Serializable`接口完成的,该接口没有声明任何方法,是一个标记接口。实现这个接口的类会被认为是可以被序列化的。 #### 关键属性`serialVersionUID` 1. **作用**:`...
通过继承Thread或实现Runnable,可以创建并控制多个执行线程。 4. **I/O流**:Java的InputStream、OutputStream、Reader、Writer及其子类提供了处理输入输出的能力,支持字节流和字符流。Buffered流、File流和对象...
* 使用Java中的Serializable接口来实现实体类的序列化。 * 了解如何使用Java中的getter和setter方法来访问和修改实体类的成员变量。 九、操作类的设计 * 设计操作类,例如ReaderDao和BookDao类。 * 使用Java中的...
Java 不支持多重继承,但可以使用接口继承多个接口。 58. Java JDBC * 什么是 JDBC?JDBC(Java Database Connectivity)是一种基于 SQL 的数据库连接机制。 59. Java Hibernate * 什么是 Hibernate?Hibernate ...
首先,`GregorianCalendar`类继承自抽象类`Calendar`,并实现了`Serializable`和`Cloneable`接口,这使得它支持序列化和克隆操作。创建一个`GregorianCalendar`实例很简单,只需调用其无参构造器即可: ```java ...
- **对象序列化**:通过Serializable接口,可以使对象持久化到磁盘或网络传输。 7. **集合框架** - **集合接口**:如List、Set、Queue等,提供各种数据结构的抽象。 - **实现类**:ArrayList、LinkedList、...
例如,`java.io.Serializable`是标记接口,表明一个类可以被序列化。 3. **Java应用结构**: - 主类(Main Class)通常包含`public static void main(String[] args)`方法,这是程序的入口点。 - 类的继承和多态...
虽然枚举不能作为其他类的父类,但它们默认继承了 `java.lang.Enum` 类,这意味着枚举实例可以使用 `Comparable` 和 `Serializable` 接口的方法。 此外,枚举可以实现接口,这使得它们可以具有自定义的行为。例如:...
本章节主要讲解Java的序列化机制,包括Serializable接口、Externalizable接口、transient关键字、serialVersionUID变量等。 Java学习系列(十三):Java面向对象之界面编程 本章节主要讲解Java的界面编程,包括AWT...
Java中的Thread类和Runnable接口可以帮助我们创建和管理线程。 4. **网络编程**:理解TCP/IP协议是必要的,因为聊天应用基于TCP建立稳定、可靠的连接。TCP确保了数据的有序传输,而IP负责数据包在网络中的路由。 5...
1. Java 中的串行化:Java 中的串行化可以通过实现 Serializable 接口来实现。 2. 串行化的目的:串行化的目的主要是为了将对象转换为字节流,以便于存储或传输。 Java 中的设计模式 1. Java 中的设计模式:Java ...
一个".java"源文件中可以包括多个类,但只能有一个公共类,且文件名必须与公共类名相同。 8. 排序都有哪几种方法?请列举。用 JAVA 实现一个快速排序?: 常见的排序方法有冒泡排序、选择排序、插入排序、快速排序...
例如,`java.io.Serializable`接口表示类可以被序列化。 4. **枚举(Enums)**:枚举类型是Java 5引入的,用于定义一组固定的常量,比如`java.util.concurrent.TimeUnit`中的`NANOSECONDS`、`MICROSECONDS`等。 5....
一个类可以继承多个抽象类,但是继承关系只能是单一的。 - **接口**:接口完全由抽象方法组成,不允许包含任何具体实现。Java 8 之后引入了默认方法和静态方法,但主要还是用于定义行为规范。一个类可以实现多个接口...
3. **接口**: 接口在Java中用于实现多继承,它是抽象方法的集合。例如,Cloneable接口表示一个类支持克隆,Serializable接口表示类支持序列化。 4. **异常处理**: Java通过异常机制来处理运行时错误。Exception类是...
此外,缓冲流(BufferedInputStream/BufferedReader)和转换流(InputStreamReader/OutputStreamWriter)可以提高读写效率,而对象序列化(Serializable接口)则允许将对象持久化到文件或网络。 最后,Java还包含了...
如果不需要枚举实例被序列化,可以声明枚举类实现`java.io.Serializable`接口,并添加`transient`关键字。 7. 枚举的常量与静态字段 枚举类中的字段默认是静态的,因此可以在不创建枚举实例的情况下访问它们。这...
- 事件委托机制是Java GUI编程中的概念,事件处理者可以是父组件,这样可以避免事件监听器的重复添加。 - 垃圾回收机制(GC)自动回收不再使用的对象,以释放内存。它判断对象是否可达,如果不可达则进行回收。 5. ...
Java的File和Serializable接口可以帮助实现棋局的序列化和反序列化。 8. **测试与调试**: - 使用JUnit或其他测试框架,编写单元测试来验证各个部分的正确性,通过调试工具找出并修复潜在的bug。 总的来说,这个...