深入探索Java对象的序列化
对象序列化就是把对象写入到输出流中,用来存储或者传输。
对象的反序列化就是从输入流中读取对象。
要序列化的对象应该实现Serializable接口。
Serializable接口是一个标识接口,没有抽象方法。
Serializable有一个子接口Externalizable,实现Externalizable接口的类可以自行控制对象序列化荷反序列化过程。
一般来说,没有必要自己实现序列化接口,直接交给Java虚拟机是上策。
实现了序列化接口的类,如果其成员不需要序列化进去,则使用transient关键字进行修饰。
下面给出个例子:
import java.io.*;
/**
* Java对象的序列化测试
* File: ObjectStreamTest.java
* User: leizhimin
* Date: 2008-3-12 20:41:43
*/
public class ObjectStreamTest {
public static void main(String args[]) {
testObjectSeri();
testObjectInSeri();
}
/**
* 对象序列化测试
*/
public static void testObjectSeri() {
Person person = new Person("熔岩", "341022225562156", "lavasoft");
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputSt
相关文档:
Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container
classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题。
1 Collection 和
Collections的区别。
2 List, Set, Map是否继承自Collection接口。 ......
1.static声明变量的用法在基础知识里面;
Java里面static用来声明函数的作用:
A.可以不用创建对象(实例),而直接调用——类.方法
B.用于main函数的方法
2.new——分配空间问题
有多少ne ......
1.局部变量在使用的时候必须已经被初始化
2.byte b=2,e=3
byte c=b+c; 会编译不通过,应为b+c会自动 类型提升位int 如果想得到 byte c 必须强制转型 byte c=(byte)b+c;
3.f ......
1、语法:必须比较熟悉,在写代码的时候 IDE 的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉 JDK 带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialve ......
今天在编写一个快速排序函数,其中想用一个在C++中类似swap功能的函数,结果引发了一系列的问题。
下面是在网上搜到的代码,并在我的本地机上作了运行。
public class ParamTest
{
public static void ......