zoukankan      html  css  js  c++  java
  • 干了这杯Java之transient关键字

    看源码的时候,发现transient这个关键字,不甚理解,查找资料发现:不被序列化

    疑问:

    • 静态变量是不是不被序列化?
    public class User implements Serializable {
    
    	private static final long serialVersionUID = 2877054094045568710L;
    
    	private String username;
    	
    	private transient String password;
    	
    	private static int age;
    
    	public String getUsername() {
    		return username;
    	}
    
    	public void setUsername(String username) {
    		this.username = username;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		User.age = age;
    	}
    
    	public static void main(String[] args) {
    		User user = new User();
    		user.setUsername("imeng");
    		user.setPassword("123456");
    		user.setAge(22);
    		
    		try {			
    			ObjectOutputStream os = new ObjectOutputStream(
    			        new FileOutputStream("/Users/imeng/Desktop/user.txt"));
    			os.writeObject(user);
    			os.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    		//序列号后改变Static的值
    		user.setAge(100);
    		
    		ObjectInputStream oi;
    		try {
    			oi = new ObjectInputStream(new FileInputStream("/Users/imeng/Desktop/user.txt"));
    			User readUser = (User) oi.readObject();
    			System.out.println("username:" + readUser.getUsername());
    			System.out.println("transient关键字password:" + readUser.getPassword());
    			System.out.println("静态变量age:" + readUser.getAge());
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    username:imeng
    password:null
    age:100
    

    结论:

    • transient关键字可以阻止序列化
    • 序列号并不保存静态变量
  • 相关阅读:
    PHP中如何防止跨域调用接口
    301、404、200、304、500HTTP状态
    多表联合查询
    put方式提交上传图片
    获取样式属性getComputed,currentStyle
    AjaxPro异步加载服务器的时间
    在 ASP.NET 中执行 URL 重写
    ASP.NET 的前世今生 之 .NET Framework
    asp.net 读写 XML 转载自 yiki'space
    可爱的人人
  • 原文地址:https://www.cnblogs.com/imeng/p/7662449.html
Copyright © 2011-2022 走看看