zoukankan      html  css  js  c++  java
  • Hibernate中Java对象的生命周期

            一个对象的出生源于我们的一个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方法,持久化对象或游离对象转变为被删除对象。

  • 相关阅读:
    【zz】编程修养(一二三)
    Lec1计算字符串的相似度
    ASP.NETFLV处理流代码
    获取指定文件夹下所有子目录及文件(树形)
    Flex及AS3的百条常用知识(转载)
    [AS3] 解决跨域问题
    Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
    ASP.NET中的File类和Directory类的相关知识
    Asp.net 备份、还原Ms SQLServer及压缩Access数据库
    http://blog.csdn.net/octverve/archive/2008/01/29/2071356.aspx
  • 原文地址:https://www.cnblogs.com/zsswpb/p/6329430.html
Copyright © 2011-2022 走看看