Java transient意思

在Java中,transient 關鍵字是一個修飾符,用於修飾變數。當一個變數被transient 修飾時,意味著這個變數不會被序列化。序列化是指將一個對象的狀態保存到存儲介質(如檔案或資料庫)中的過程,以便在以後可以恢復該對象的狀態。

序列化通常用於以下幾種情況:

  1. 保存對象的狀態到檔案中,以便在以後可以載入並恢復對象的狀態。
  2. 在網路中傳輸對象,以便在遠程計算機上創建該對象的副本。
  3. 保存對象的狀態到資料庫中,以便在以後可以載入並恢復對象的狀態。

如果一個變數被transient 修飾,那麼在序列化對象時,這個變數的值就不會被保存到存儲介質中。當對象被反序列化時,這個變數的值也不會被恢復。

下面是一個簡單的例子,說明了transient 關鍵字的使用:

public class Person implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private transient int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

在上面的例子中,Person 類中的age 變數被transient 修飾。這意味著當序列化Person 對象時,age 變數的值不會被保存到存儲介質中。當反序列化Person 對象時,age 變數的值也不會被恢復。