“transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号.或者这么给他换个名字——“不可序列化状态”.打个比方,如果一个用户有一些敏感信息(譬如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输.这些信息对应的变量就可以被定义为transient类型.换句话说,这个字段的生命周期仅存于调用者的内存中. 如定义类: public class People impleme
你可以任意使用如下的修改限定关键字来定义一个字段:final或者volatile和/或者static和/或者transient. 如果你将一个字段定义为final,编译器将确保字段当成一个常量——只读变量来初始化和处理.因为编译器知道常量是不变的,所以在程序的字节码中对其进行了内部优化. class Employee { final ; final ; final ; int jobID = ACCOUNTANT; } 如果你将一个字段声明为volatile,则多线程将能访问此字段,而特定的编译
1.需要序列化的类 import java.io.Serializable; /** * 必须继承 Serializable 接口才能实现序列化 */ public class Employee implements Serializable{ /** * transient 关键字表示该字段无法序列化 */ private transient int age; private String name; public int getAge() { return age; } public voi