“持久化 Java 对象”(Persistent Java Object)是指 能够被永久保存到某种存储介质中(如数据库、文件系统)的 Java 对象

详细一点:

持久化(Persistence)是将程序数据在持久状态(如数据库、磁盘文件)与瞬时状态(如内存)间转换的机制,旨在防止数据丢失并降低存储成本。其核心技术包括数据的存储(Save)、读取(Load)和状态检查(Exists),主流实现方式涵盖数据库操作、文件存储及对象序列化(如JDBC、XML)等。

简单来说:

持久化(Persistence)= 对象的状态可以在程序结束后继续存在,下次运行时还能恢复出来。


🌱 一、基本概念

在 Java 程序运行时,普通对象(例如 new Person())存在于 内存(JVM 堆内) 中,程序一结束就消失。
而“持久化对象”则会:

  • 把它的状态(字段数据)保存到数据库或文件;

  • 程序下次启动时,可以重新加载并恢复成原始对象。

因此,持久化对象的生命周期比 JVM 更长


🧩 二、举个例子

1. 非持久化对象
Person p = new Person("Alice", 20);

程序退出后,p 消失。

2. 持久化对象(示例1:手动保存)
Person p = new Person("Alice", 20);
saveToFile(p);  // 将对象序列化为文件

下次运行:

Person p = loadFromFile();  // 从文件反序列化

这样,p 的状态被“持久化”到文件中。

3. 持久化对象(示例2:使用 ORM 框架,如 Hibernate / JPA)
@Entity
public class Person {
    @Id
    private Long id;
    private String name;
    private int age;
}

使用 Hibernate 保存:

Person p = new Person("Alice", 20);
entityManager.persist(p); // 保存到数据库

此时,p 就是一个 持久化对象(Persistent Object),它的状态被保存进数据库中表 person。

🧠 三、持久化对象的生命周期(以 Hibernate 为例)

状态 含义
Transient(瞬时态) 刚创建,还没保存到数据库中
Persistent(持久态) 已被持久化上下文(如 Hibernate Session)管理,并已保存到数据库
Detached(游离态) 持久态对象的会话已关闭,不再被管理,但数据仍存在于数据库中
Removed(删除态) 对象已被标记为删除,提交事务后会从数据库中删除

🗄️ 四、常见的 Java 持久化方式

方式 特点
Java 序列化 (ObjectOutputStream) 把对象保存成二进制文件,简单但灵活性差
JDBC 直接通过 SQL 操作数据库,手工映射字段
JPA / Hibernate / MyBatis 使用 ORM 框架自动将 Java 对象映射为数据库表
JSON / XML / YAML 把对象序列化为文本格式,适合配置或网络传输
NoSQL 存储 (MongoDB, Redis) 对象以文档或键值形式持久化

📦 五、总结一句话

持久化 Java 对象 是指能将其状态保存到长期存储介质(数据库或文件)中,并能在程序重启后恢复使用的对象。
它是“Java 对象生命周期延伸”的关键概念,常与 ORM 框架(如 Hibernate、JPA) 一起使用。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐