序列化和反序列化的对单例破坏的防止及其原理
ObjectInputStream.readObject() -> ObjectInputStream.readObject0() -> readOrdinaryObject() -> 如果可序列化,.newInstance() 反射创建了新对象,所以单例破坏,如果添加了readResolve()就好了,是会继续调用 hasReadResolveMethod() ,有反射调用,重置obj再返回,单例就不会破坏了
Android面试
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 第一章:Activity生命周期和启动模式 Activity关闭时会调用onPause()和onStop(),如果...
- 学习内容 View 基础概念 自定义 View View 的底层工作原理测量流程布局流程绘制流程 View 常见回...
- Android控件架构与自定义控件(一) (本文并非原创文章,整理摘抄方便自己查看,原文地址为Android控件架...