当前位置: 首页 > news >正文

哪里的赣州网站建设乒乓球网站建设目标

哪里的赣州网站建设,乒乓球网站建设目标,想学网站开发,wordpress与hexo前言 finalize()是Object的protected方法#xff0c;子类可以覆盖该方法以实现资源清理工作#xff0c;GC在回收对象之前调用该方法。。 finalize的作用 (1)finalize()与C中的析构函数不是对应的。C中的析构函数调用的时机是确定的#xff08;对象离开作用域或delete掉子类可以覆盖该方法以实现资源清理工作GC在回收对象之前调用该方法。。 finalize的作用 (1)finalize()与C中的析构函数不是对应的。C中的析构函数调用的时机是确定的对象离开作用域或delete掉但Java中的finalize的调用具有不确定性 (2)不建议用finalize方法完成“非内存资源”的清理工作但建议用于① 清理本地对象(通过JNI创建的对象)② 作为确保某些非内存资源(如Socket、文件等)释放的一个补充在finalize方法中显式调用其他资源释放方法。其原因可见下文[finalize的问题 finalize的问题 (1)一些与finalize相关的方法由于一些致命的缺陷已经被废弃了如System.runFinalizersOnExit()方法、Runtime.runFinalizersOnExit()方法 (2)System.gc()与System.runFinalization()方法增加了finalize方法执行的机会但不可盲目依赖它们 (3)Java语言规范并不保证finalize方法会被及时地执行、而且根本不会保证它们会被执行 (4)finalize方法可能会带来性能问题。因为JVM通常在单独的低优先级线程中完成finalize的执行 (5)对象再生问题finalize方法中可将待回收对象赋值给GC Roots可达的对象引用从而达到对象再生的目的 (6)finalize方法至多由GC执行一次(用户当然可以手动调用对象的finalize方法但并不影响GC对finalize的行为) finalize的执行过程(生命周期) (1) 首先大致描述一下finalize流程当对象变成(GC Roots)不可达时GC会判断该对象是否覆盖了finalize方法若未覆盖则直接将其回收。否则若对象未执行过finalize方法将其放入F-Queue队列由一低优先级线程执行该队列中对象的finalize方法。执行finalize方法完毕后GC会再次判断该对象是否可达若不可达则进行回收否则对象“复活”。 (2) 具体的finalize流程 对象可由两种状态涉及到两类状态空间一是终结状态空间 F {unfinalized, finalizable, finalized}二是可达状态空间 R {reachable, finalizer-reachable, unreachable}。各状态含义如下 unfinalized: 新建对象会先进入此状态GC并未准备执行其finalize方法因为该对象是可达的 finalizable: 表示GC可对该对象执行finalize方法GC已检测到该对象不可达。正如前面所述GC通过F-Queue队列和一专用线程完成finalize的执行 finalized: 表示GC已经对该对象执行过finalize方法 reachable: 表示GC Roots引用可达 finalizer-reachable(f-reachable)表示不是reachable但可通过某个finalizable对象可达 unreachable对象不可通过上面两种途径可达 (1)新建对象首先处于[reachable, unfinalized]状态(A) (2)随着程序的运行一些引用关系会消失导致状态变迁从reachable状态变迁到f-reachable(B, C, D)或unreachable(E, F)状态 (3)若JVM检测到处于unfinalized状态的对象变成f-reachable或unreachableJVM会将其标记为finalizable状态(G,H)。若对象原处于[unreachable, unfinalized]状态则同时将其标记为f-reachable(H)。 (4)在某个时刻JVM取出某个finalizable对象将其标记为finalized并在某个线程中执行其finalize方法。由于是在活动线程中引用了该对象该对象将变迁到(reachable, finalized)状态(K或J)。该动作将影响某些其他对象从f-reachable状态重新回到reachable状态(L, M, N) (5)处于finalizable状态的对象不能同时是unreahable的由第4点可知将对象finalizable对象标记为finalized时会由某个线程执行该对象的finalize方法致使其变成reachable。这也是图中只有八个状态点的原因 (6)程序员手动调用finalize方法并不会影响到上述内部标记的变化因此JVM只会至多调用finalize一次即使该对象“复活”也是如此。程序员手动调用多少次不影响JVM的行为 (7)若JVM检测到finalized状态的对象变成unreachable回收其内存(I) (8)若对象并未覆盖finalize方法JVM会进行优化直接回收对象O (9)注System.runFinalizersOnExit()等方法可以使对象即使处于reachable状态JVM仍对其执行finalize方法
http://www.hkea.cn/news/14361222/

相关文章:

  • 网站做业务赚钱吗对比插件 wordpress
  • 建设大厦网站2二级域名免费
  • 做网站有哪些技术注册公司代理有哪些
  • 百度站长平台推出网站移动化大赛长沙哪个公司做网站好
  • 廊坊做网站企业教程钓鱼网站如何做
  • 网站改版 重定向在家做兼职的网站
  • 教师网站建设企业实践总结邯郸网站制作多少钱
  • 网站设计在线crm系统做网站办公室图片
  • 北京高端企业网站建设wordpress整合discuz用户
  • 大连微信网站建设电子商务网站建设与管理的有关论文
  • 青岛网站建设策划网站建设分金手指专业十三
  • 长葛网站建设十大网游人气排行榜
  • 网站制作南宁wordpress 导入用户
  • 衡水网站建设格公司wordpress文章打赏
  • 有阿里空间怎么做网站免费创建自己的网站平台
  • 汕头网站制作哪家强有哪些外贸公司网站做的比较好
  • 建设一个网站需要多少费用wordpress网易云插件怎么用
  • 做花瓶的网站综合性门户网站是什么意思
  • 用淘宝评论做网站wordpress 标签函数
  • .net手机网站源码下载使用flask做前后端分离的网站
  • 网站域名在哪买wordpress仿国际
  • 河南网站搭建百度 模块网站
  • 研究生做网站开发公司网站设计方案
  • 昆明建设路租房信息昆明租房网站购物网站开发模板
  • 常州网站建设公司巧誉友网络在线代理浏览网页
  • 建筑中级职称查询网站永修县建设局网站
  • 深圳住建厅官方网站广州市网站建设价格
  • 精利手表网站装修公司排名
  • 360网站制作沈阳专业制作网站公司哪家好
  • 网站的内链手机网站特效代码