• 《Java基础知识》Java transient关键字详解


    前言

    在看ArrayList源码的时候遇到了关键字“transient”,可怜的我居然没有遇到过这个关键字,那没有办法只好去找资料了解一下它的功能。

    功能说明

    先看一个案例

    public class User implements Serializable {
        private static final long serialVersionUID = 8294180014912103005L;

        private String username;

        /**
         * passwd字段加上了transient关键字,我们就可以看到效果
         */
        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;
        }

        @Override
        public String toString() {
            return "User{" +
                    "username='" + username + '\'' +
                    ", passwd='" + passwd + '\'' +
                    '}';
        }
    }

     

    public class TransientTest {
        public static void main(String[] args) {
            User user = new User();
            user.setUsername("Alexia");
            user.setPasswd("123456");

            System.out.println("user: " + user.toString());

            try{
                File file = new File("src\\demo\\knowledgepoints\\transients\\foo.txt");
                //把对象信息写入文件中。
                ObjectOutputStream oout = new ObjectOutputStream (new FileOutputStream(file));
                oout.writeObject(user);
                oout.close();
                System.out.println("-----------------序列化前后对比-----------------");
                //把对象信息从文件中获取出来。
                ObjectInputStream oin = new ObjectInputStream(new FileInputStream(file));
                User newUser = (User)oin.readObject(); // 没有强制转换到Person类型
                oin.close();
                System.out.println("newUser: " + newUser.toString());
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }
    }

     

    运行效果:

    我们可以看到,反序列化出来的对象,passwd的值为null了。


     

  • 相关阅读:
    Dubbo 与 Spring Cloud 完美结合
    如何打造个人IP?
    uniapp<button>按钮去掉边框
    ResizeKit2.NET大小和分辨率独立
    塔望3W消费战略全案丨轻食植物基,突围侧翼战
    极客日报:网易回应旗下游戏集体崩溃:用干冰修好了服务器;GitHub更换CEO,由产品主管接手;Nginx 1.21.4发布
    【技术积累】Mysql中的SQL语言【技术篇】【四】
    获取文件 SHA-256 值
    Hello CTP(一)——期货业务
    IOT 之 MQTT协议
  • 原文地址:https://blog.csdn.net/Limingmingaa/article/details/125545310