-
序列化时父类构造函数:<br> 1.子类在反序列化时,父类实现了序列化接口,怎不会递归调用其构造函数<br> 而父类实现了serializable接口,子类继承就可序列化<br> 2.子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数<br> 父类未实现serializable接口,子类自行实现可序列化<br> 结论:当父类实现了serializable接口,子类可以被序列化,当对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,则其父类的构造函数会被调用,反之父类的构造函数不会被调用。归结为有序列化接口的构造函数不会被调用查看全部
-
引用: 序列化: transient 关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化 注意: (1)在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。 (2)可以使用writeObject自己完成这个元素的序列化。ArrayList就是用了此方法进行了优化操作。ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只对数组中有效元素进行序列化。readObject与之类似。 (3)java.io.ObjectOutputStream.defaultWriteObject(); // 把jvm能默认序列化的元素进行序列化操作 java.io.ObjectOutputStream.writeInt(age);// 自己完成序列化 (4) java.io.ObjectOutputStream.defaultReadObject();// 把jvm能默认反序列化的元素进行反序列化 this.age = java.io.ObjectOutputStream.readInt(); // 自己完成age的反序列化操作查看全部
-
对象序列化查看全部
-
randomaccessfile可以访问文件的任意位置查看全部
-
字符流过滤器查看全部
-
transient修饰怎么做序列化和反序列化查看全部
-
transient查看全部
-
translent查看全部
-
字符流笔记查看全部
-
笔记。。。查看全部
-
序列化中子类与父类构造函数的调用问题 1、一个类实现了序列化接口(Serializable),那么其子类都可以进行序列化,不要再去实现序列化接口了。 2、对子类对象进行反序列化操作时,如果其父类没有实现序列化接口(Serializable),那么其父类的构造函数就会被调用,若实现了,则不会调用。查看全部
-
transient关键字:被transient关键字修饰的元素,该元素不会进行jvm默认的序列化,但是可以自己手动对该元素进行序列化。 注: 1、在以后的编程中,如果某些元素不需要传输,那就可以用transient修饰,来节省流量,对有效的元素进行序列化,可以提供性能。 2、可以使用writeObject()来自己完成对该元素的序列化。ArrayList就是使用了此方法来进行优化操作。ArrayList最核心的容器Object[] element使用了transient修饰,但是在writeObject()自己实现对elementData数组的序列化。只对数组中的有效元素进行序列化。readObject()与之类似。 3、图片是自定义序列化的范例。查看全部
-
对象的序列化与反序列化的基本概念查看全部
-
IO流查看全部
-
RandomAccessFile(2)查看全部
举报
0/150
提交
取消