文档章节

【JAVA】说说JAVA语言中的不靠谱方法

Dean_King
 Dean_King
发布于 2015/04/27 12:01
字数 497
阅读 30
收藏 0

JAVA的File类中的 renameTo, delete 等方法,都是些不靠谱的方法,操作失败是常事。他们都有一个布尔的返回值,使用他们时要格外小心。

当file被占用时,这些方法就会返回false,即使很规矩的 in.close;out.close; 仍然会false,这个很是让人头疼。为此,只好绕道而行,比如,当前程序先记录下要操作的文件,再开一个程序去做操作,为得是file不被占用。这几天,也是遇到了这个问题,renameTo对一个文件夹中的文件重命名,一部分操作成功,一部分失败,而且总是那几个文件会失败。开始的时候,想到的是让流变量=null,这样让流失去对文件的引用(由于使用的是BufferedImage 没有close方法),但无济于事。在网上查了查,没有好的解决方法,这是上周的事了,然后周一来上班,打开IDE,刚看到这段代码,突然想到用gc,当然gc这个东西也不是靠谱的,程序员也只有通知的权力,仅此而已,执不执行,看他心情。

System.gc(); 
file.renameTo("xxxx");

还别说,果然好用了。

null与gc

前几天在看OC,然后吐槽OC里那个引用计数,感觉java有gc要好用的多,而今天就碰壁了。null就是放弃了引用权,等待gc的回收,可gc的回收并非即使的,在这期间,可能时间极短,但还是可能出现问题。而引用计数可以手动释放内存,主动性强,要比智能的gc更适用。

可惜JAVA没有引用计数这类的手动机制,所以只能用gc,在这种情况下,gc是否100%有用,还有待验证。

© 著作权归作者所有

Dean_King
粉丝 3
博文 11
码字总数 6737
作品 0
海淀
私信 提问
三个类似 Sinatra 的 Java 框架介绍

Sinatra 是一个微型的 Ruby 语言的 Web 框架,据说 100 行代码就可以开发一个博客软件。一个简单的hello world的web应用用Sinatra只需5行代码: 而 Sinatra 这种框架的思路被越来越人所接受,...

红薯
2012/01/05
10.2K
23
Kotlin 空降“上位”已满月,有对你带来变化吗?

自从5.18 Google IO 大会到现在,Kotlin 已实打实的“上位”一个月。不知道你自己或者身边有没有人开始学习和使用 Kotlin 呢? Kotlin 有对你带来什么变化吗?欢迎回复讨论。 Kotlin 的空降似...

王练
2017/06/19
4.1K
33
Scala 不是改良的 Java,你会考虑使用 Scale 吗?

Scala 本身就基于 Java 平台,却要来跟 Java 比较,这有点不靠谱。 Scala编程语言拥有所有Java的语言特征,而且还支持所有的新兴的有趣的概念,例如闭包,higher-kinded类型,内联XML。如果你...

绿悠悠
2010/07/28
3.6K
10
来看看Cap’n Proto’s的神器力量,让你的数据飞起来传输

https://capnproto.org/ 这是管网。capnproto其他语言我不知道,反正我的java现在是跑起来了。 看到没,首页就说了把原来他自己写的谷歌的protobuf给完全碾压了。 明显这家伙在谷歌工作的时候...

uaisunshine
2015/04/23
581
0
为啥java程序员总有那么多不理性的。。。

我自认为说话,算公允的。要说喷语言,c语言,某个dsp汇编。我喷的算最多的,无非这里喷的少些,因为c语言我最了解。说点java不该做的,或者不合适的,就有无理性的java程序员和我乱扯。貌似...

中山野鬼
2013/08/22
1K
40

没有更多内容

加载失败,请刷新页面

加载更多

oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
1
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
1
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部