java 序列化学习笔记

什么是序列化?它是JAVA为了将对象写入到文件中产生的机制,也就是只有在对象数据流中才能用到,目的就是为了从文件中读取或者记录对象。

序列化就是将对象写入到“硬盘”中,该对象必须继承Serializable接口(不用实现任何方法),这个接口仅仅起到标记的作用
eg: public class Person implements Serializable{}


静态属性是不能被序列化的,因为它在“堆”中

“transient”修饰之后可以指定某些属性不被序列化
eg: transient int age;

序列化之后的文件名命名规则:对象名称.object;因为这个文件不是用来给用户看的,打开了里面全部是乱码,但是我们应该从文件名中可以看出这个文件是存储的什么东西,作用是什么,所以文件名尤为重要

读写对象的方法示例
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:\\Person.object"));
oos.writeObject(new Person(20,"huangbiao"));
oos.close();

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c:\\Person.object"));
Person person = (Person)ois.readObject();

序列号是由属性、方法计算出来的,如果属性或者是方法改变,则序列号也变了,如果读对象要捕捉找不到类的异常,当然也可以指定对象的序列号,就能找到对象
eg: public static final long serializableUID = 42L;

posted @ 2011-10-15 23:01  胖鹅  阅读(166)  评论(0编辑  收藏  举报