最近看源码看到这个关键字,大学毕业这么久了,竟然对这个东东竟然一无所知,俺躺在床上辗转反侧难以入眠点起了一根七匹狼做起电脑前就是一顿Goole加度娘,总算有了大概的认知!
奇怪的知识又多了起来,欧力给!
我先附上一段代码
疑问点就是从这里开始的:
俺就对上面的English进行goole翻译,翻译过来就是 : /* 与该类有关的用户定义值的后备存储。 由ClassValue类维护*/。
transient 这个关键字在我们平时做项目并不常见,但为什么底层源码却是经常见到!这就让人有一探究竟的想法!
Java的serialization提供了一种持久化对象实例的机制。
当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient
用transient型修饰的变量值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。(也就是)
这里需要解释一下序列化:对于有的小伙伴对此并不熟悉
序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
但是涉及到存储,我大致猜想肯定是为了节约磁盘空间,避免造成不必要的浪费吧,已达到运行的速度和效率!
所以源码很多处都有用到这个关键字! 今天又学了丢丢小知识。