当前位置: 首页 > ai >正文

Java 笔记 transient 用法

transient 关键字用于标记 不希望被序列化(Serialization) 的字段。序列化是指将对象的状态保存到字节流中,以便将其传输或存储。当使用如 ObjectOutputStream 进行序列化时,transient 修饰的字段将 不会被序列化

✅ 1. 使用场景

🔸 避免序列化敏感信息

private transient String password;

🔸 某些字段不需要持久化(如缓存、临时数据)

private transient List<CacheData> cache;

🔸 非序列化类型字段(非 Serializable 类型)

如果某字段不是 Serializable,又不想整个类报错,可以把这个字段设为 transient

private transient SomeNonSerializableType helper;

✅ 2. 注意事项

  • transient 只能用于字段(不能修饰类或方法)。

  • 静态字段也不会被序列化,但它们 不能transient 修饰。

  • 如果你用 transient 修饰 final 字段,在反序列化时会报错或不符合预期(因为 final 字段需要构造函数赋值)。

✅ 3. 对比 statictransient

修饰符是否序列化说明
普通字段被完整序列化
static属于类,不属于对象
transient明确表示不需要序列化
static transient多余,static 本身就不会序列化

写小说也写代码,左手架空世界,右手现实逻辑。  
📚 欢迎来看博客,起点同笔名在写小说,欢迎来找我玩。

https://my.qidian.com/author/433910170/

http://www.xdnf.cn/news/16421.html

相关文章:

  • 四、计算机组成原理——第3章:存储系统
  • JVM 垃圾回收机制全景解析:从对象回收到收集算法
  • 正向代理和反向代理的理解
  • 数据分析干货| 衡石科技可视化创作之仪表盘控件如何设置
  • laravel chunkById导出数据乱序问题
  • Open CV图像基本操作可莉版
  • 学习游戏制作记录(改进剑投掷状态)7.28
  • Leetcode_349.两个数组的交集
  • SPI通信协议
  • 分布式渲染效能探析:关键网络性能要素
  • 机器学习基础-matplotlib
  • linux系统----Ansible中的playbook简单应用
  • 计算机视觉---Halcon概览
  • 【算法训练营Day17】二叉树part7
  • 【学习路线】Android开发2025:从入门到高级架构师
  • linux命令grep的实际应用
  • MySQL 与 PostgreSQL 对比
  • Redis四种GetShell方式完整教程
  • 【WRF-Chem第二期】WRF-Chem有关 namelist 详解
  • 1.DRF 环境安装与配置
  • 零基础学习性能测试第九章:全链路追踪-系统中间件节点监控
  • LeetCode 刷题【18. 四数之和】
  • 计算机网络编程-Socket通信以及实战
  • 企业级JWT验证最佳方案:StringUtils.hasText()
  • 使用Ettus USRP X440对雷达和EW系统进行原型验证
  • 分布式IO选型指南:2025年分布式无线远程IO品牌及采集控制方案详解
  • Python动态规划:从基础到高阶优化的全面指南(2)
  • socketpair函数详解
  • Qt小组件 - 8 图片浏览器
  • go‑cdc‑chunkers:用 CDC 实现智能分块 强力去重