
transient关键字是做什么的?
如果您有一个可序列化的对象,但有一些字段在将数据写入流时不希望序列化,则可以将transient修饰符应用于字段声明。当反序列化一个transient字段时,该字段将为空。
创建一个User类实例:
创建测试类如下:
生成的二进制文件如下:
现在我们可以读取二进制文件看看有什么效果呢,如下图:
运行结果如下图所示:
创建transient字段的主要用例是当您将私有字段作为缓存时,因此您可以在反序列化后重新生成缓存,或者在数据反序列化后重新生成数据,例如从其他字段创建的字段:
private String firstName = "Bruce";
private String lastName = "Springsteen";
private String fullName = String.format("%s %s", firstName, lastName);
如上步骤所示,您可以在transient字段中保存安全或敏感的数据,并确信它不会被写入ObjectOutputStream。
