zoukankan      html  css  js  c++  java
  • 为什么要实现Serializable? 是否都要实现Serializable

    主要有两个原因:
      1、将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;
           这个可以这么理解:
              比如,你要将某个特定的对象保存到文件中,然后隔几天在把它拿出来用
      2、按值将对象从一个应用程序域发送至另一个应用程序域。
                  这个可以这么理解:
              在进行Socket编程的时候,需要要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串或者类Date型的数据,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。                或者当你要去调用一个远程对象,如在计算机A中调用另一台计算机B的对象的时,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,这个时候就需要实现序列化接口。
     
    是否都要实现Serializable
        不一定,主要就是看你的bean是否需要持久化存储媒体中以及是否需要传输给另一个应用,没有的话就不需要,例如我们利用fastjson将实体类转化成json字符串时,并不涉及到转化为字节流,所以其实跟序列化没有关系。
     
    附加问题:

        有的时候并没有实现序列化,依然可以持久化到数据库。

                    这个其实我们可以看看实体类中常用的数据类型,例如Date、String等等,它们已经实现了序列化,而一些基本类型,数据库里面有与之对应的数据结构,从我们的类声明来看,我们没有实现serializabel接口,其实是在声明的各个不同变量的时候,由具体的数据类型帮助我们实现了序列化操作。

     
     
  • 相关阅读:
    浅尝辄止——在C++中调用C#的回调函数——COM方式
    代码管理——如何连接Git Server,下载代码
    浅尝辄止——使用ActiveX装载WPF控件
    软件调试——CPU异常列表
    软件调试——IA-32 保护模式下寄存器一览
    Delphi面向对象编程
    看雪2017CTF第二题解法
    串操作指令
    MASM 重复汇编
    MASM 宏结构
  • 原文地址:https://www.cnblogs.com/littleapple/p/12838658.html
Copyright © 2011-2022 走看看