transient đánh dấu một field không tham gia serialization.
Khi object được ObjectOutputStream ghi ra byte, field transient bị bỏ qua; lúc deserialize nó nhận giá trị mặc định (0, false, null).
java
class Session implements Serializable {
String user;
transient String password; // không ghi ra stream
transient Connection conn; // không serialize được → phải transient
}Dùng khi field:
- nhạy cảm (password, token) không nên nằm trong file/luồng
- không serialize được (socket, thread, connection)
- suy ra được từ field khác (cache, giá trị tính lại)
Lưu ý: static field cũng không được serialize (thuộc class chứ không thuộc instance). Nếu cần khôi phục field transient theo cách riêng → cài readObject()/writeObject() hoặc dùng Externalizable.