发表于: 2017-11-26 21:58:15
1 630
今天完成的事
修改昨天的bug
profession原因就是没有序列化。
这个是干嘛用的呢。
我来刚一哈。
解决此异常,一般大家知道方法就是,既然报没有序列化的错误,那我们就把我们的对象序列化了就是了,实现起来也很简单,就是把要放入对象序列化即可
于是修改此类实现Serializable,调用的类对象必须一并实现Serializable。(这个也很重要)
总结:是序列化的问题,在一些类里面调用了其它的类,而调用的类实现了序列化接口,但其它类没有实现,也会出现这样的情况,解决的办法是让你调用的类继承你用的那个类,或者调用的那个类也实现序列化接口!
收获
为什么我们要进行序列化
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流;
序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例
序列化的什么特点:
如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。
什么时候使用序列化:
一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。
二:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。
我的理解:
比如用一个类描述一张合同,而这个类实例化后其中的字段保存着合同的信息,如果现在要把这个类的实例发送到另一台机器、另一个窗体或是想保存这个类以便以后再取出来用(持久化对象),可以对这个类进行序列化(序列化实际上是一个信息流),传送或保存,用的时候再反序列化重新生成这个对象
明天的计划
解决了这个bug就是万里长征第9999步。明天提交任务6(吹牛逼被
http://task.ptteng.com/zentao/task-view-14263.html
评论