java(十四):transient与序列化
来源:互联网 发布:创意美工作品图片大全 编辑:程序博客网 时间:2024/05/19 17:07
transient译作临时的,瞬态的意思,指的是在序列化的时候,被该关键字修饰的变量将不会被持久化。
比如用户的密码,身份证号,当希望将其保存到文件而又过滤掉这些敏感信息时,就可以使用该关键字修饰。
说道序列化,需要说明的是,static关键字不会被被序列化也不会被反序列化,因为static是类成员,在反序列化时(其实等同于初始化),就会使用类里的初始值,然而需要注意的是,内存中如果已经存在该类,且该类的该静态变量已经赋予了新值,则被序列化的类就会使用新的值。
下面的参考例子出自Java transient关键字使用小记:
public class Test01{ public static void main(String[] args){ User user = new User(); user.setUsername("Alexia"); user.setPasswd("123456"); System.out.println("read before Serializable: "); System.out.println("username: " + user.getUsername()); System.err.println("password: " + user.getPasswd()); try { ObjectOutputStream os = new ObjectOutputStream( new FileOutputStream("C:\\Users\\xxx\\Desktop/user.txt")); os.writeObject(user); // 将User对象写进文件 os.flush(); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { // 在反序列化之前改变username的值 //User.username = "jiang"; ObjectInputStream is = new ObjectInputStream(new FileInputStream( "C:\\Users\\xxx\\Desktop/user.txt")); user = (User) is.readObject(); // 从流中读取User的数据 is.close(); System.out.println("\nread after Serializable: "); System.out.println("username: " + user.getUsername()); System.err.println("password: " + user.getPasswd()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }}class User implements Serializable { private static final long serialVersionUID = 8294180014912103005L; public static String username; private transient String passwd; public String getUsername() {return username;} public void setUsername(String username) {this.username = username;} public String getPasswd() {return passwd;} public void setPasswd(String passwd) {this.passwd = passwd;}}
阅读全文
0 0
- java(十四):transient与序列化
- Java序列化与transient关键字
- java关键字transient与序列化相关
- transient与序列化
- transient与序列化
- transient与序列化
- java transient 序列化
- transient 关键字与序列化
- transient 关键字 与序列化
- transient关键字与序列化
- java序列化和transient
- java 序列化 serialVersionUID transient
- Java序列化之transient
- Java序列化 transient关键字
- java序列化之transient
- java序列化之transient
- Java 序列化、反序列化与transient关键字
- java学习——序列化与 Transient 关键字
- Ambari Agent源码梳理
- 优化定制化abap代码必须遵守的经典黄金规则
- POJ 1155 TELE 树形dp + 背包
- 机房收费系统—前期配置
- Postgres设置pg_log日志记录内容
- java(十四):transient与序列化
- Linux应用编程基础--(8)线程间的同步和互斥
- 极客公园邀你一起探寻技术X资本的下一个引爆点
- (二)关于套接字的断开操作--半关闭
- 你一定没想过,直播能否激发人性中的善
- 记录一下MD5和RSA的加密程序
- TechCrunch 国际创新峰会<上海站>邀你一起 See the Future
- FCC算法:一、Reverse a String--翻转字符串
- 易车CEO李斌演讲:人们需要买一辆智能汽车