看源碼的時候,發現transient這個關鍵字,不甚理解,查找資料發現:不被序列化java
疑問:this
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
結論:code