zoukankan      html  css  js  c++  java
  • java transient 知识点学习

    今天看源码的时候看到这个关键字,完全没见过,不懂。好吧!学习一下。

    我们都知道实现了Serilizable接口的类,便可以序列化,那么其中某些成员变量不想被序列化怎么办?就是利用transient这个关键字来实现。废话不多说,上例子。

     1 import java.io.FileInputStream;
     2 import java.io.FileNotFoundException;
     3 import java.io.FileOutputStream;
     4 import java.io.IOException;
     5 import java.io.ObjectInputStream;
     6 import java.io.ObjectOutputStream;
     7 
     8 public class TransientTest {
     9     
    10     public static void main(String[] args) {
    11         
    12         User user = new User();
    13         user.setUsername("lee");
    14         user.setPasswd("123456");
    15         
    16         System.out.println("read before Serializable: ");
    17         System.out.println("username: " + user.getUsername());
    18         System.err.println("password: " + user.getPasswd());
    19         
    20         try {
    21             ObjectOutputStream os = new ObjectOutputStream(
    22                     new FileOutputStream("C:/f_work/user.txt"));
    23             os.writeObject(user);
    24             os.flush();
    25             os.close();
    26         } catch (FileNotFoundException e) {
    27             e.printStackTrace();
    28         } catch (IOException e) {
    29             e.printStackTrace();
    30         }
    31         try {
    32             ObjectInputStream is = new ObjectInputStream(new FileInputStream(
    33                     "C:/f_work/user.txt"));
    34             user = (User) is.readObject();
    35             is.close();
    36             
    37             System.out.println("
    read after Serializable: ");
    38             System.out.println("username: " + user.getUsername());
    39             System.err.println("password: " + user.getPasswd());
    40             
    41         } catch (FileNotFoundException e) {
    42             e.printStackTrace();
    43         } catch (IOException e) {
    44             e.printStackTrace();
    45         } catch (ClassNotFoundException e) {
    46             e.printStackTrace();
    47         }
    48     }
    49 }
    50 
    51 
    52 import java.io.Serializable;
    53 
    54 class User implements Serializable {
    55     private static final long serialVersionUID = 8294180014912103005L;  
    56     
    57     private String username;
    58     private transient String passwd;
    59     
    60     public String getUsername() {
    61         return username;
    62     }
    63     
    64     public void setUsername(String username) {
    65         this.username = username;
    66     }
    67     
    68     public String getPasswd() {
    69         return passwd;
    70     }
    71     
    72     public void setPasswd(String passwd) {
    73         this.passwd = passwd;
    74     }
    75 
    76 }

    运行结果:

    read before Serializable:
    password: 123456
    username: lee

    read after Serializable:
    username: lee
    password: null

    null说明没有取到信息。

  • 相关阅读:
    nginx 详解--概念解释以及配置---转载
    jmeter和loadrunner测试结果差异大-web页面静态资源下载--转载
    一、性能测试的八大类--转载
    fiddler学习总结--手机端(APP/微信小程序)抓包--转载
    HTTP协议详解(真的很经典)--转载
    oracle修改表名和列名的多种方式
    LR web_custom_request
    web_add_cookie()
    Linux tar命令
    Linux下zip与unzip命令使用详解
  • 原文地址:https://www.cnblogs.com/lihao007/p/7789271.html
Copyright © 2011-2022 走看看