易截截图软件、单文件、免安装、纯绿色、仅160KB

浅析Java序列化机制

    Java当中的序列化,其主要的作用是将类的实例进行无损传输,或者说就是通过Java的序列化机制,Java类的实例可以通过Object流来传输和重新获取,而不会损坏类的实例。
    首先,我们看看什么样的类是序列化类,
      1.A类自身实现了Serializable接口的类;
      2.A类自身没有实现Serializable接口,但其父类实现了Serializable接口的类;
    以上两种,我们认为是类A是序列化类。
    在SCJP考试当中就有一道关于序列化的题目:
    import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Food implements Serializable{
Food() {
System.out.print("1");
}
}
class Fruit extends Food implements Serializable {
Fruit() {
System.out.print("2");
}
}
public class Banana2 extends Fruit {
int size = 42;
public static void main(String[] args) {
Banana2 b = new Banana2();
b.serializeBanana2(b); // assume correct serialization
b = b.deserializeBanana2(b); // assume correct
System.out.println(" restored " + b.size + " ");
}
// more Banana2 methods
public static void serializeBanana2(Banana2 b) {
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("c:/a.txt"));
out.writeObject(b);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Banana2 deserializeBanana2(Banana2 b) {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("c:/a.txt"));
return (Banana2) in.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

这道题的输出结果是:121 restored 42
    从运行结果来看:前连个数字12是显而易见的,在new Banana2()的时候执行的,但是第三个1就不好理解了,其实,如果从多态的角度考虑,也不难理解,因为反序列化是要得到原类的实例,而这就需要在反序列化之前就得声明一个原始类或者原


相关文档:

【UC浏览器】Java平台7.0正式版发布啦

UC浏览器是UC 优视科技开发的一款手机浏览器,支持WEB、WAP页面浏览,速度快而稳定,页面排版美观;具有网站导航、搜索、下载、个人数据管理等功能,您能随时随地通过UC浏览器进行无线冲浪,将互联网装进口袋,享受高质移动生活!
         今天,UC浏览器7.0 正式版终于和大家见面了,新版 ......

Java接口与抽象类的比较

Java接口与抽象类的比较
1、  最大的区别:java抽象类可以提供某些方法的部分实现,而java接口不可以。
如果向一个抽象类里加入一个新的具体方法,那么他所有的子类都一下子得到了这个新方法,而java接口做不到这一点。如果向一个java接口里面加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为必须让 ......

Java Annotation 浅析1

Annotations
Annotations是J2SE 5.0引入的新语言特性。通常, Annotations允许开发者用一种跟运行代码无关的次要信息来标注类,方法以及成员。这样就可以使用类似评价的 Annotations,比如“好方法”、“坏方法”,或者更详细一些,“不推荐的方法”、“覆写的方法&rdq ......

Java兼容性与安全性设置


    为了使操作系统支持Java,可由Sun公司的Java下载网页, 根据操作系统类型下载和安装一个免费JRE(Java Runtime Environment), 例如, JRE6。然后, 将本文件下载保存, 拷贝, 并粘贴到JRE所在的security目录, 例如, C:/Program Files/Java/jre6/lib/security/, 替换原有的文件java.policy, 设置JRE完成。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号