章节
问答
课签
笔记
评论
占位
占位
今日不再显示

12年以上的大型项目研发及项目管理经验,曾经策划多个大型项目与网站的架构,主持过访问量达亿级的大型网站。近期先后为多家知名公司授课,有多年的培训经验。对知识点的讲解细腻、逻辑性强。

提问题

写笔记

代码语言
公开笔记
提交
加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 墓中幻相
反序列化出来的是一个对象,对象就好比new Student();创建出来的实例化对象它是在堆内存里的;而把实例化的对象赋值给变量也就是 Object p = new Student(); 这个变量p只是个变量,他在栈内存里,存储的是右边堆内存里对象的引用地址。而输出这个变量P的话实际上也是输出他存储的引用地址

最赞回答 / 1315020626
这个序列化意思是,当你序列化一个文件并且写入的时候,在你写入的数据文件中是有实现了序列化接口的那些类的信息。这样你反序列化,他们都存在就不会重新创建了。但是如果你父类没有序列化,子类序列化了,当你序列化写的时候,父类是没有被写入的,当你反序列化读取的时候,你读取到了子类,但是没有发现父类,此时就会去调用父类的构造方法了,此时就有输出了

已采纳回答 / HungerCheung
问题原因:<...code...>解决方法:
//注释掉或者直接删除下面这行代码可以得到和老师同样的结果
//Bar2 bar2 = new Bar2();
//该程序是为了测试反序列化得到对象是否调用其构造方法
//因此重新新建一个Bar2的实体对象是完全没有必要的,反而会混淆测试结果

已采纳回答 / zjxjwxk
我这里用你的没有一点问题诶  是不是main函数有问题你把序列、反序列封装成函数,那我的main函数是这样的:ObjectOutputStream oos = new ObjectOutputStream(                new FileOutputStream("demo/obj2.dat")        );        Bar2 bar2 = new Bar2();        oos.writeObject(bar2);        oos.flush();        ...

最赞回答 / long_l
只要把老师的操作,换汤不换药(连汤也不换也行),自己再跟着打一遍,每节课都打的话,就很厉害了。现在只是零碎的知识点,这样练就行,以后的项目,才能真的锻炼技能。

最新回答 / 武HH
数组开拓了内存空间,但是实际存放数据的可能只有部分,所以只需要序列化存放数据的那一部分

已采纳回答 / 我是菁粉
老师讲解时,都是实例化子类对象的,因为子类对象已经实例化过的,所以不会报错,如果此时直接对没有序列化的父类对象进行对象的文件存储与读取操作、网络传输时均会报错的。

最新回答 / 筱芴
你可以先判断文件是否存在file.exists(),要是不存在就进行创建file.createNewFile();这样操作就没问题了

最新回答 / 慕粉3722587
这个不是内部类,定义在类中或方法中的类才叫内部类Java中允许在一个.java文件中创建多个类,但只能有个一个类修饰符是public 

最赞回答 / tlojy
在父类没有实现 Serializable 接口时,虚拟机是不会序列化父对象的,也就是说序列化后的流中没有父类的信息;而一个 Java 对象的构造必须先有父对象,才有子对象,反序列化也不例外。所以反序列化时,为了构造父对象,只能调用父类的无参构造函数作为默认的父对象。

已采纳回答 / suifengxiaoyao
<...code...>

已采纳回答 / 慕粉3693314
说子类和父类,继承序列化接口是,它的构造函数,会怎样显示和调用。当父类实现了序列化接口时,子类被调用,其父类的构造函数是不会被显示和调用的,当父类没有实现序列化接口,而是其子类继承了序列化接口,其父类的构造函数会被显示和调用。

最新回答 / 要做Java大师
所以其实父类需不需要序列化接口是要根据实际情况判断的,看你的父类对象需不需要被传输。这一节是想告诉我们在你的父类实现或者没有实现序列化接口后,在反序列化时会发生的情况。所以~知道这个和性能没有太大关系,还是要看实际情况啦

已采纳回答 / qq_我有我的范儿_0
我说一下我的理解吧:说之前首先要说一下概念,序列化就是将对象转换为字节序列,通俗点就是讲创建出来的对象状态保存起来(构造函数初始化之后的)父类如果没有实现序列接口,而子类实现序列接口,那么父类对象就不会被序列化,也就不会被保存,而子类却可以被序列化,即保存Java中构造一个对象,首先得先构造父类对象,才会构造子类对象,所以在反序列化子类时,就会调用父类构造方法来作为默认的父类对象,而子类因为已经被序列化了(已经调用过子类构造方法的状态),所以就不会再调用子类自己的构造方法
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言