博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate中Java对象的生命周期
阅读量:5330 次
发布时间:2019-06-14

本文共 794 字,大约阅读时间需要 2 分钟。

        一个对象的出生源于我们的一个new操作,当我们使用new语句创建一个对象,这个对象的生命周期就开始了,当我们不在有任何引用变量引用它,这个对象就的生命就此结束,它占用的内存就可以被JVM的垃圾回收器回收。

       而在Hibernate的持久层,一个Java对象在它的生命周期中有四个状态:临时状态、持久化状态、删除状态、游离状态。

    1、临时状态------transient

          用new语句创建一个对象,还没有被持久化,并且未加入到Session缓存中,这时处于临时状态的Java对象

          被称为临时对象。

 

    2、持久化状态--------persistent

          已经被持久化,放入到Session缓存中,这时处于持久化状态的Java对象称为持久化对象。

    3、删除状态---------removed

          不再处于session缓存中,并且session已经计划将其从数据库中删除,处于删除状态的Java对象被称为

           被删除对象。

    4、游离状态----------detached

          已经被持久化,但不再处于session的缓存中,处于有利状态的Java对象被称为游离状态。

      上述已经介绍了这四种状态,Java对象的从new开始,直到生命周期结束如何在这四种状态中转化的,通过下面这张图来详细介绍他们之间的转化关系。

     

     

         

     总结:

           上图说明了Java对象从产生到最后消亡的一个整个历程:

          第一步,使用new新建一个对象,这时对象产生处于临时状态,

          第二步,当我们采用save()等方法将数据持久化时,这时Java对象进入持久化状态,

          第三步,使用close()等方法清空缓存,这时对象就处于游离状态

          第四步,游离状态对象被垃圾回收机制回收

          注意:被删除状态:通过delete方法,持久化对象或游离对象转变为被删除对象。

 

转载于:https://www.cnblogs.com/zsswpb/p/6329430.html

你可能感兴趣的文章
模拟Post登陆带验证码的网站
查看>>
NYOJ458 - 小光棍数
查看>>
java中常用方法
查看>>
【Programming Clip】06、07年清华计算机考研上机试题解答(个别测试用例无法通过)...
查看>>
canvas动画
查看>>
4,7周围玩家
查看>>
关于webpack升级过后不能打包的问题;
查看>>
vue - 生命周期
查看>>
SQL Server用户权限详解
查看>>
Python正则表达式
查看>>
Linux进程间通信--命名管道
查看>>
UVa 10970 - Big Chocolate
查看>>
js输出
查看>>
set,env,export,set -x,set -e;
查看>>
H5多文本换行
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>