A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.file.delete   程序运行到就执行删除,如果在之前出现异常那么不会执行这语句,从而形成垃圾~~这个明白

2.deleteOnExit  看毕老师的视频,说是运行到先不会执行删除,程序运行结束退出虚拟机就会一定会执行删除
  想问
      2.1如果在执行到 deleteOnExit语句之前 出现异常那么程序结束后还会不会删除·········  呃,想到(⊙o⊙)自己代码验证下,

            --------->  证明完发现   如果没执行到 deleteOnExit出现异常,那么最后不会删除文件

                       问?? 可是如果这情况不是和 使用delete   代码出现异常时候情况一样吗?都不能成功删除······
   
      2.2deleteOnExit 是怎么执行的············原理是啥呃。。。。  比较想知道原理

评分

参与人数 1黑马币 +3 收起 理由
船长 + 3 赞一个!

查看全部评分

1 个回复

倒序浏览
你自己不说了"运行到先不会执行删除,程序运行结束退出虚拟机就会一定会执行删除",
我的理解是这里给要删除的文件先上了个标记,JVM结束的时候判断有没有标记,有就删除。
前提是要先读到啊这句话,而在前面有异常发生的时候,这句话是读不到的,也就没上标记,最后当然不删除。

评分

参与人数 1黑马币 +3 收起 理由
船长 + 3 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马