Java中的transient关键字用于标记一个对象在创建后不应该被序列化或反序列化。这是因为transient关键字标记的对象在创建后不会被存储在类的内存中,而是存储在类的元数据中,这样可以避免在多线程环境下出现数据竞争的问题。
下面是一个使用transient关键字的示例代码:
package org.example;
import cn.hutool.json.JSONUtil;
import java.io.Serializable;
public class Account implements Serializable {
private String username;
private transient String password;
public Account(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static void main(String[] args) {
Account account = new Account("zhangsan", "123456");
String json = JSONUtil.toJsonStr(account);
// 输出结果为:{"username":"zhangsan"}
System.out.println(json);
// 输出结果为:123456
System.out.println(account.getPassword());
}
}