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.

  • 相关阅读:
    The Fifth Season Gym
    SuperHyperMarket Gym
    Far Manager Gym
    Game Map------Gym
    Happy Number
    Pursuing the Happiness
    Digit sum-----The Preliminary Contest for ICPC Asia Shanghai 2019
    Light bulbs------The Preliminary Contest for ICPC Asia Shanghai 2019
    P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    HDU 1203 I NEED A OFFER!
  • 原文地址:https://www.cnblogs.com/anyehome/p/8478753.html
Copyright © 2011-2022 走看看