序列化的秘密,详细内容请看附件
内容简介:
为什么要有序列化:
一样事物的产生,必然有他的道理
序列化都干些啥:
产生了就得干活
首要问题:反序列化时如何生成实例
序列化时将实例变为了字节序列,反序列化时就得把实例再给你变回来
是不是所有的类都需要序列化:
不是所有类都需要实例化,原因是什么
哪些东西需要序列化:
类里面有那么多东西,序列化需要关照到哪些内容?
用transient保护敏感信息 :
如果类里有的字段是敏感信息,不想被序列化,该怎么办?
序列化算法:
探究序列化的原理
定制自己的序列化算法:
自己也可以定制序列化,step bystep告诉你怎么做
严重漏洞:刻舟求剑:
从字节序列中读取老版本的对象,去恢复新版本的,好比刻舟求剑
单例模式不过是浮云:
序列化可以肆意生成实例,单例模式很难保证,我们该如何做?
同引用实例化问题:
如果两个属性引用了同一个实例,反序列化时是生成一个实例,还是两个?
常见的序列化攻击:
序列化的过程“漏洞重重”,自然攻击也就来了,有哪些攻击,我们该如何做
百家争鸣:hessian和mina也玩序列化:
hessian和mina都实现了自己的序列化,各有千秋百家争鸣,我们来探讨一下
工作中需要注意的点:
如何用好序列化
附录1 ObjectOutputStream和ObjectInputStream:
序列化不可获取的两个类,放在哪章都不好,只能放在这里做个参考
附录2 Serializable中的隐藏方法一览:
Serializable里有很多不为人知的秘密
参考文献:
想扩展阅读请看这里,很多高手的文章都在这里,感谢他们的帮助
很多内容都是自己瞎琢磨的,有问题请大家批评指正thanks