瞬態關鍵字transient
回顧static關鍵字
靜態關鍵字static優先於非靜態載入到記憶體當中(在使用的過程當中靜態的東西優先於物件進入記憶體)
注意以下是新內容:
被static關鍵字修飾的成員變數不能被序列化,序列化的都是物件,如果被static修飾的話它不屬於物件
舉例示範
public class Person implements Serializable {
String name = "張三";
static int age = 18;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:\\d.txt"));
Object o = ois.readObject();
ois.close();
System.out.println(o);
}
得到的結果如下
但是如果我們想某個成員變數不被顯示出來的同時不讓該變數被共享,那麼我們引入了transient關鍵字
transient關鍵字:瞬態關鍵字
被該關鍵字修飾的成員變數不能被序列化
舉例示範:
public class Person implements Serializable {
static String name = "張三";
@Override
public String toString() {
return "Person{" +
"age=" + age +
'}';
}
transient int age = 18;
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:\\d.txt"));
Object o = ois.readObject();
ois.close();
System.out.println(o);
}
得到的結果為
相關文章
- @Transient關鍵字
- [java]transient關鍵字Java
- Java中transient關鍵字的作用Java
- 被遺忘的Java關鍵字:transientJava
- transient關鍵詞的概述
- Java 中的 transient 關鍵字和物件序列化Java物件
- DM 關鍵字、遮蔽關鍵字
- let關鍵字和const關鍵字
- final關鍵字和static關鍵字
- this關鍵字
- 關鍵字
- out關鍵字和ref關鍵字的區別
- abstract關鍵字 super 關鍵字 類與繼承繼承
- 面試官:transient關鍵字修飾的變數當真不可序列化?我:煩請先生教我!面試變數
- 4關鍵字
- [JavaScript] this 關鍵字JavaScript
- synchronized 關鍵字synchronized
- Volatile關鍵字
- static關鍵字
- final關鍵字
- super關鍵字
- const關鍵字
- Voliate關鍵字
- Auto關鍵字
- Swift 關鍵字Swift
- defer關鍵字
- typedef關鍵字
- params關鍵字
- throw關鍵字
- dynamic關鍵字
- volatile 關鍵字
- friend關鍵字
- Python函式/動態引數/關鍵字引數Python函式
- 面試官:告訴我為什麼static和transient關鍵字修飾的變數不能被序列化?面試變數
- synchronize關鍵字 原理
- 各類關鍵字
- Google關鍵字工具Go
- Java native關鍵字Java