Java关键字 transient
来源:互联网 发布:22周胎儿发育标准数据 编辑:程序博客网 时间:2024/06/02 03:08
在上班无事可做时,开始试着自己去看看源码,首先接触不必多说,最为常见的Collection接口下的一些常用类。
打开ArrayList,继承抽象类AbstractList,实现List、RandomAccess、Cloneable、Serializable接口
第一个属性serialVersionUID,不必过多解释,序列化的相关属性
第二个属性elementData,Object数组类型,transient关键字修饰。
transient是什么,从来没见过,好去查一下。
查完回来:transient修饰的属性,不参与序列化,不再是对象持久化的一部分,有transient修饰的属性,类要实现Serializable接口,
下面通过代码去解释这儿
class UserInfo implements Serializable { private static final long serialVersionUID = 154111313L; private String userName; private transient String passWord; /** * 获取userName * @return userName userName */ public String getUserName() { return userName; } /** * 设置userName * @param userName userName */ public void setUserName(String userName) { this.userName = userName; } /** * 获取passWord * @return passWord passWord */ public String getPassWord() { return passWord; } /** * 设置passWord * @param passWord passWord */ public void setPassWord(String passWord) { this.passWord = passWord; }}实体类UserInfo
public static void main(String[] args) { UserInfo user = new UserInfo(); user.setUserName("Daming"); user.setPassWord("111222333"); System.out.println(user.getUserName() + "/" + user.getPassWord()); try { ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(new File("D:/a.txt"))); os.writeObject(user); os.flush(); os.flush(); } catch (Exception e) { // TODO: handle exception } try { ObjectInputStream oi = new ObjectInputStream(new FileInputStream(new File("D:/a.txt"))); UserInfo userCopy = (UserInfo) oi.readObject(); oi.close(); System.out.println(userCopy.getUserName() +"/" + userCopy.getPassWord()); } catch (Exception e) { // TODO: handle exception } }测试方法如上
测试结果
Daming/111222333Daming/null能观察到什么,UserInfo在被序列化后传入文件内,再从文件中读取时为空。我的理解是在对象转化为字节数组时该属性无法序列化,所以值为空,传入文件里也为空。
大致能得到的一个结论是,被transient修饰的属性只能在内存中存活,当对该对象进行持久化操作时,该属性无法被序列化,所以不能保存完整的属性信息。
应用:数据传输安全方面。
阅读全文
0 0
- java关键字Transient
- java关键字Transient
- java关键字Transient
- java关键字Transient
- java关键字Transient
- java关键字Transient
- JAVA transient 关键字
- java关键字Transient
- Java transient关键字
- java关键字Transient (转)
- java的关键字transient
- java关键字Transient
- Java transient 关键字用法
- JAVA关键字transient
- Java transient关键字
- Java transient关键字
- Java transient关键字
- Java transient关键字
- 机器学习算法:朴素贝叶斯
- JAVA: getRequestDispatcher()与sendRedirect()的区别
- 183.134.16.17无高防,不酣畅,快快网络台州三线高防给您极致体验
- Volley源码及流程分析
- windows下 c++ 检测磁盘可用空间
- Java关键字 transient
- 3DTouch
- spark关于分区和sortBy的学习
- leetcode 71. Simplify Path
- Qt笔记(5)重新搭建Qt开发环境 一
- 【个人笔记】md5学习
- MFC调用库文件函数pragma comment()
- [Error]集成第三方API时Other Linker Flags项添加-all_load引起的冲突
- Selenium显性等待的方式