黑马程序员技术交流社区

标题: java序列化求简明扼要的解释 [打印本页]

作者: 张承富    时间: 2013-6-18 16:47
标题: java序列化求简明扼要的解释

虽然毕姥爷讲的很好很详细,但是视频看的太多,来不及复习,
所以在这里求解下,可以简单的举例子,先行谢过。
作者: Super_Class    时间: 2013-6-18 19:42
|--对象的序列化与反序列化//操作对象的数据流对象
                                1.ObjectOutputStream —— 对象的序列化
                                        延长对象的生命周期
                                        ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。
                                        只能将支持 java.io.Serializable 接口的对象写入流中。
                                所以要将对象写入文件。要将对象序列化也就是实现Serializable接口。这个叫做标记接口
                                        |——
                                                final void writeObject(Object obj)
                                                 将指定的对象写入 ObjectOutputStream。对象的类、类的签名,以及类及其所有超类型的非瞬态和非静态字段的值都将被写入。
                                                 可以使用 writeObject 和 readObject 方法重写类的默认序列化
                                2.ObjectInputStream —— 对象的反序列化
                                        ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
                                        final Object readObject()
                        从 ObjectInputStream 读取对象。对象的类、类的签名和类及所有其超类型的非瞬态和非静态字段的值都将被读取。
                                                可以使用 writeObject 和 readObject 方法为类重写默认的反序列化。

                        |--Serializable 用于给序列化的类加入ID 号
                                用于判断类和对象是否是同一版本
                        |--translent  //修饰对象的属性,可以变成瞬态的属性。不被写入流对象
                                非瞬态和非静态字段的值都将被写入
作者: yasyas001    时间: 2013-6-18 19:55
序列化:把对象按照流一样的方式操作(写入文本文件)。
反序列化:把文本文件的数据还原成对象。
        (2)面试题:存储多个对象。
        (3)序列化的时候,要求类必须实现序列化接口。
           为了类在简单的改动后,还不影响我们曾经的操作,就给出一个默认的序列化id值
作者: 张承富    时间: 2013-6-19 10:37
不行,还是不太理解,最好用白话说一下
作者: 月时微    时间: 2013-6-19 12:36
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

对象、文件、数据,有许多不同的格式,很难统一传输和保存序列化以后就都是字节流了,无论原来是什么东西,都能变成一样的东西,就可以进行通用的格式传输或保存,传输结束以后,要再次使用,就进行反序列化还原,这样对象还是对象,文件还是文件
作者: 张承富    时间: 2013-6-19 16:46
月时微 发表于 2013-6-19 12:36
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写 ...

大概明白点了,多谢
作者: 孙百鑫    时间: 2013-6-25 00:10
楼主您好,由于帖子长时间没有动态,我已经讲帖子改成已解决了,如有问题,可以私聊我。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2