zoukankan      html  css  js  c++  java
  • Java -----transient 和static

    越来越喜欢深究java基础了,讲讲 transient  和static 对序列化的影响。废话少说,直接上代码就可以了

     1 package serializable;
     2 
     3 import java.io.Serializable;
     4 
     5 public class User implements Serializable {
     6     private String name;
     7     private transient String password; // 被transient修饰的变量
     8     private static String age;
     9 
    10     
    11     public User() {
    12         super();
    13     }
    14 
    15     public String getName() {
    16         return name;
    17     }
    18 
    19     public void setName(String name) {
    20         this.name = name;
    21     }
    22 
    23     public String getPassword() {
    24         return password;
    25     }
    26 
    27     public void setPassword(String password) {
    28         this.password = password;
    29     }
    30 
    31     public static String getAge() {
    32         return age;
    33     }
    34 
    35     public static void setAge(String age) {
    36         User.age = age;
    37     }
    38 
    39 }
     1 import java.io.FileInputStream;
     2 import java.io.FileOutputStream;
     3 import java.io.IOException;
     4 import java.io.ObjectInputStream;
     5 import java.io.ObjectOutputStream;
     6 
     7 public class Test {
     8     public static void main(String[] args) throws Exception {
     9         // User user = new User();
    10         // user.setAge("22");
    11         // user.setName("小明");
    12         // user.setPassword("admin");
    13         // System.out.println(user.getAge()+"	"+user.getName()+"	"+user.getPassword());
    14         // ObjectOutputStream oos = new ObjectOutputStream(new
    15         // FileOutputStream("e:/user.txt"));
    16         // oos.writeObject(user);
    17         // oos.flush();
    18         // oos.close();
    19         //
    20         // ObjectInputStream ois = new ObjectInputStream(new
    21         // FileInputStream("e:/user.txt"));
    22         // User users = (User) ois.readObject();
    23         //
    24         // System.out.println(users.getAge()+"	"+users.getName()+"	"+users.getPassword());
    25         // User user = new User();
    26         // user.setAge("22");
    27         // user.setName("小明");
    28         // user.setPassword("admin");
    29         // System.out.println(user.getAge()+"	"+user.getName()+"	"+user.getPassword());
    30         // ObjectOutputStream oos = new ObjectOutputStream(new
    31         // FileOutputStream("e:/user.txt"));
    32         //
    33         // oos.writeObject(user);
    34         // oos.flush();
    35         // oos.close();
    36     
    37         ObjectInputStream ois = new ObjectInputStream(new FileInputStream("e:/user.txt"));
    38         User users = (User) ois.readObject();
    39 
    40         System.out.println(users.getAge() + "	" + users.getName() + "	" + users.getPassword());
    41 
    42     }
    43 }

    运行截图贴上

    第二次的代码运行截图,一目了然,

    从运行结果可以看出用  transient 修饰的变量在反序列化后值为 null

     被static修饰的变量应该也是不会被序列化的,因为只有堆内存会被序列化.所以静态变量会天生不会被序列化。也是null.

  • 相关阅读:
    IDEA 编辑器如何将tabs 分行显示
    react-native-image-zoom-viewer的使用
    react native ios Linking appstore,用于更新,模拟机操作不了
    将ios的地址和安卓的地址合并生成二维码
    error: Build input file cannot be found: '/Users/zhou/Downloads/IQKeyboardManager-master/IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.m'
    react 项目中引入iconfont
    Task :react-native-yunpeng-alipay:verifyReleaseResources FAILED
    react native 支付宝接入,亲测--安卓版
    react native 支付宝接入,亲测
    iOS---------金额转大写
  • 原文地址:https://www.cnblogs.com/anyehome/p/8478753.html
Copyright © 2011-2022 走看看