码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Effective Java学习笔记---------序列化


    优先选择Java序列化的替换方案(java现成库)

    1. ObjectInputStream 上的 readObject 方法反序列化方法存在很多问题

    非常谨慎地实现Serializable

    1. 实现 Serializable 接口的一个主要代价是,一旦类的实现被发布,它就会降低更改该类实现的灵活性。
    2. 实现 Serializable 接口的第二个代价是,增加了出现 bug 和安全漏洞的可能性
    3. 实现 Serializable 接口的第三个代价是,它增加了与发布类的新版本相关的测试负担。
    4. 实现 Serializable 接口并不是一个轻松的决定
    5. 为继承而设计的类(详见第 19 条)很少情况适合实现 Serializable 接口,接口也很少情况适合扩展它。
    6. 内部类不应该实现 Serializable

    考虑使用自定义的序列化形式

    1. 即使你认为默认的序列化形式是合适的,你通常也必须提供 readObject 方法来确保不变性和安全性。
    2. defaultWriteObject, readObject 做的第一件事是调用 defaultReadObject,即使 StringList 的所有字段都是 transient 的
    3. 无论选择哪种序列化形式,都要在编写的每个可序列化类中声明显式的序列版本 UID。
    4. 不要更改序列版本 UID,除非你想破坏与现有序列化所有实例的兼容性。

    保护性的编写 readObject 方法

    列化的时候,对于客户端不应该拥有的对象引用,如果那个字段包含了这样的对象引用,就必须做保护性拷贝,这是非常重要的。

    对于实例控制,枚举类型优于 readResolve

    1. 如果依赖 readResolve 进行实例控制,带有对象引用类型的所有实例字段都必须声明为 transient

    考虑用序列化代理代替序列化实例

  • 相关阅读:
    代码随想录 -- day46 --139.单词拆分
    【模拟】螺旋矩阵问题
    leetcode_318 最大单词乘积
    URP渲染管线场景优化实战 2.2静态资源导入及优化——Model
    C语言动态内存管理
    Java并发操作之synchronized互斥锁总结
    【面试高高手】—— Redis
    高压配电安全监测系统:确保电力系统的稳定运行
    C语言经典100例题(51-54)--学习使用按位与& ,按位或 |,按位异或 ^和按位取反~
    GitHub 标星 15w,如何用 Python 实现所有算法?
  • 原文地址:https://blog.csdn.net/jsq916/article/details/126705494
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号