[java]序列化和反序列化

来源:互联网 发布:淘宝全套模板代码 编辑:程序博客网 时间:2024/04/29 02:03

当两个进程在远程通信时,彼此可以发送各种类型的数据,无论何种类型的数据,都会以二进制序列的形式在网络上传送,发送方需要把这个java对象转换为字节序列,才能在网络上传送,接收方则需要把字节序列再恢复为java对象

序列化(串行化)---把java对象转化为字节序列的过程

                                ---jvm默认的序列化

                                    ---实现serializable接口---如果一个类的父类实现了可序列化接口,子类一样可以序列化

                                    ---对象的属性是要可序列化的,否则该对象不能被序列化(Bitmap类型 的不能被序列化)

                                                ---ObjectOutputStream---将java对象的基本数据类型和图形写入OutputStream  

                                        ---构造方法:ObjectOutputStream()/ObjectOutputStream(OutputStream out)

                                        ---用writeObject()方法将对象写入流中

                                 ---全部自己序列化----实现Externalizable接口

                                     ---transient关键字---序列化部分属性

                                 ---部分用jvm默认序列化、部分自己序列化

                                     ---要求在类中添加两个方法

                                         private void writeObject(java.io.ObjectOutputStream s)  throws java.io.IOException   
                                         private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException 

反序列化---把字节对象恢复为java对象的过程

                ---ObjectInputStream---对以前使用ObjectOuputStream写入的基本数据和对象进行反序列化

                    ---构造方法:ObjectInputStream()/ObjectInputStream(InputStream in)