Transient (Java SE 11  amp  JDK 11 )

哟呵,今天俺要来分享一下 Java 中的一个关键字——transient。这个词其实挺好理解的,就是“瞬间的,短暂的,过渡的”之类的意思。但是在 Java 的世界里,它可不是这么简单啊。

先来说一下这个关键字的作用吧。在 Java 中,所有的对象都可以被序列化(serialization),也就是说可以被转换成一系列的字节,然后存储在某个地方或者进行网络传输。但是有些时候,我们并不希望某些对象的某些属性被序列化,比如密码、数据库连接等等。这时候就可以用到 transient 关键字了,它可以让某个属性“暂时失效”,即在序列化时被忽略掉,等到反序列化时再重新读取此属性的值。这样做的好处就是可以保护敏感信息的安全性。

等等,你可能要问了,为啥不直接用 private 关键字修饰敏感属性呢?其实是因为 private 并不能完全阻止对象的序列化,只是让其属性无法在对象外部访问而已。如果你真的在一个不可靠的环境下,比如网络传输,还是有可能被这样的人攻击窃取你的信息的。transient 才是真正的绝招。

举个例子吧,比如说你正在做一个密码管理器,里面有一个 User 类用来保存用户信息,其中密码就是敏感信息。如果你直接把密码作为 User 类中的一个属性,那么有可能会被序列化到文件中或者被网络传输,造成泄露。但是如果你把密码属性加上 transient 关键字,这样就保护了该属性,序列化时会自动忽略掉,等到要用到密码的时候再重新读取一遍就行了。

不过需要注意的是,transient 关键字只能用于普通变量,不能用于 static 变量。因为 static 修饰的变量不属于对象的属性,而是属于整个类的。另外,transient 关键字也不能用于本地变量和方法参数。

好了,今天的分享就到这里啦。 当然,这只是 transient 关键字的一个应用场景,它还有其他的用途,比如在 RMI(Remote Method Invocation)中使用,为了避免某些对象的状态被复制到客户端,可以把这些状态用 transient 关键字修饰掉,这样就只有服务器端能够看到这些状态了。所以,学会使用 transient 关键字是很重要的哦! www.0574web.net 宁波海美seo网络优化公司 是网页设计制作,网站优化,企业关键词排名,网络营销知识和开发爱好者的一站式目的地,提供丰富的信息、资源和工具来帮助用户创建令人惊叹的实用网站。 该平台致力于提供实用、相关和最新的内容,这使其成为初学者和经验丰富的专业人士的宝贵资源。

点赞(19) 打赏

声明本文内容来自网络,若涉及侵权,请联系我们删除! 投稿需知:请以word形式发送至邮箱18067275213@163.com

评论列表 共有 1 条评论

ashley 11月前 回复TA

见过做SEO的没见过这么小的真张见识了ZAC的BLOG缺少表情啊

立即
投稿
发表
评论
返回
顶部