• transient


    “transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号。或者这么给他换个名字——“不可序列化状态”。
    打个比方,如果一个用户有一些敏感信息(譬如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输。这些信息对应的变量就可以被定义为transient类型。换句话说,这个字段的生命周期仅存于调用者的内存中。

    如定义类:
        public class People implements Serializable { 
            private static final long serialVersionUID = 8294180014912103005L; 
            /**
             * 用户名
             */ 
            private String username; 
            /**
             * 密码
             */ 
            private transient String password; 
        }

    密码字段为transient,这时候如果对该对象进行序列化,这个密码字段是不会被保存的。

    以下例子展示了这个行为:
        public static void main(String[] args) throws Exception { 
                People p = new People(); 
                p.setUsername("snowolf"); 
                p.setPassword("123456"); 
         
                System.err.println("------操作前------"); 
                System.err.println("username: " + p.getUsername()); 
                System.err.println("password: " + p.getPassword()); 
         
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream( 
                        "people.txt")); 
                oos.writeObject(p); 
                oos.flush(); 
                oos.close(); 
         
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream( 
                        "people.txt")); 
                p = (People) ois.readObject(); 
         
                ois.close(); 
         
                System.err.println("------操作后------"); 
                System.err.println("username: " + p.getUsername()); 
                System.err.println("password: " + p.getPassword()); 
            }
    执行结果是:
        ------操作前------  
        username: snowolf  
        password: 123456  
        ------操作后------  
        username: snowolf  
        password: null

  • 相关阅读:
    常见hash算法的原理
    【学习干货】给coder的10个读书建议
    htc one x刷机记录
    Linux 搭建SVN server
    javascript
    USACO comehome Dijkstra
    当设计师、产品经理和程序员去交友站点找女朋友
    Spring3.0 AOP 具体解释
    慕课网Hibernate初探之一对多映射实验及总结
    C++数组引用
  • 原文地址:https://www.cnblogs.com/-ROCKS/p/5859134.html
Copyright © 2020-2023  润新知