为什么要实现serizable接口,实现这个接口有什么好处吗?最好给个实例,谢谢

解决方案 »

  1.   

    为了实现持久化
    如果你想把一个object保存到文件里,没实现这个接口,它就报错。
    没其他用处,就是告诉jvm我这个对象是可以保存到内存外的一个地方,想要的时候还可以取出来,保存的属性都还是以前的
      

  2.   

    所有对象都是在内存中,
    如果想要把一个对象放到磁盘中该怎么办?
    如果想让对象在网络中传输怎么办?如果你的程序在A虚拟机中运行,现在我在杭洲运行B虚拟机,此时因业务需要,我要求你传一个张三对象过来,该怎么办?发一个张三对象怎么发?你可以用对象流,但前提就是这个对象所属的类必须实现序列化,
    如果有成千上万个对象在内存中呆着,可它们什么也没干,你想性能会怎么样?比如一个客户访问服务器,服务器把这个客户资料读出来以后存在session中,如果这个客户又在网上买了几本书,但是又没有结帐,然后出门买菜去了,此时服务器正保存着这个session的信息,如果像这样的session在内存中多了肯定会影响性能的。所以web容器设置session的存活时间吗,它会判断一个客户是否在线,然后又不想把这个session给gc掉,因为这个session中有它买的几本书,所以web容器就会把这个session存到磁盘中,从而释放了内存的空间,如果用户回来双继续买书或干什么其它的,web容器就会从磁盘中读刚才那个存入的session对象,可以用对象输入/输出流进行存取,但前提就是必须实现序列化接口,此接口不需要实现任何方法,所以很简单