java transient簡介
我們都知道一個物件只要實現了Serilizable介面,這個物件就可以被序列化,java的這種序列化模式為開發者提供了很多便利,我們可以不必關係具體序列化的過程,只要這個類實現了Serilizable介面,這個的所有屬性和方法都會自動序列化。
然而在實際開發過程中,我們常常會遇到這樣的問題,這個類的有些屬性需要序列化,而其他屬性不需要被序列化,誠然,你可以讓這個類來實現Externalizable介面,這個介面是Serilizable的子介面,但是你必須實現readExternal和writeExternal方法,你可以在這兩個方法中實現具體屬性的反序列化和序列化操作。然而這就意味著你必須在這兩個方法中手工編寫額外的程式碼來進行具體屬性的序列化。java的transient關鍵字為我們提供了便利,你只需要實現Serilizable介面,將不需要序列化的屬性前新增關鍵字transient,序列化物件的時候,這個屬性就不會序列化到指定的目的地中。
public class TestTransient {
/**
* @param args
* @throws IOException
* @throws FileNotFoundException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
A a = new A(25,"張三");
System.out.println(a);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c://mm.txt"));
oos.writeObject(a);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c://mm.txt"));
a = (A)ois.readObject();
System.out.println(a);
}
}
class A implements Serializable{
int a;
transient String b;
public A(int a,String b){
this.a = a;
this.b = b;
}
public String toString(){
return "a = "+a+",b = "+b;
}
}
執行結果如下:
a = 25,b = 張三
a = 25,b = null
在上面的例子中,我將屬性b前新增關鍵字transient,我們看到雖然我們序列化的物件a的屬性值為“張三”,但是當我們反序列化之後發現這個屬性為空,說明這個屬性沒有進行序列化。
相關文章
- [java]transient關鍵字Java
- Java——transient and 序列化Java
- java transient關鍵字Java
- 在 Java 中如何使用 transientJava
- JAVA簡介Java
- Java transient 的作用及使用方法Java
- Java中transient關鍵字的作用Java
- Java transient關鍵字使用總結Java
- Java 反射簡介Java反射
- java agent簡介Java
- Java 11簡介Java
- java JNI簡介Java
- 被遺忘的Java關鍵字:transientJava
- Java scirpt簡介Java
- Java Class物件簡介Java物件
- Java學習:JDBC簡介JavaJDBC
- Java集合四:Map簡介;Java
- Java學習--JavaWeb簡介JavaWeb
- JAVA阻塞IO(BIO)簡介Java
- Java中Stalactite ORM簡介JavaORM
- 【Java初探01】——Java簡介及相關Java
- Java記憶體模型 - 簡介Java記憶體模型
- java中的編碼簡介Java
- Java記憶體模型簡介Java記憶體模型
- JAVA輕量級鎖簡介Java
- java簡介--環境安裝Java
- Java學習--Jsp簡介JavaJS
- Java 中的 transient 關鍵字和物件序列化Java物件
- 【譯】Java NIO 簡明教程系列之 NIO 簡介Java
- java註解的簡單介紹Java
- Java設計模式簡介(總結)Java設計模式
- Java高併發之CyclicBarrier簡介Java
- Java日期和時間類簡介Java
- Java程式語言特點簡介Java
- Java異常簡介及其架構Java架構
- 菜鳥學Java(十六)——Jboss簡介Java
- (轉)簡單介紹java EnumerationJava
- java字串的簡單介紹(轉)Java字串