都差不多吧,不过你最好把FileInputStream放到外面,然后再fianlly中关闭
解决方案 »
- 关于多态
- EditPLus 快捷键设置
- wait()要释放锁,是吗?那么如果一个synchronized()的代码块中,没有wait()就永远不释放锁吗??
- java用truezip压缩文件如何提高压缩比?
- 菜鸟问题~~老鸟帮助~~JAVA计时器
- 关于java外部类的访问 在线等
- 哪为有完整的小游戏代码
- AbsHandle handle = new ProductInfo();AbsHandle handle = ProductInfo.getInstance();这两句有什么区别吗?
- 请问异常继承的问题?
- 哪儿有英文词库啊?我在编程时碰到需要检查一个词是否是英文单词的情况。谢谢了!
- 学习JAVA反射遇到的一个错误
- 关于synchronized()函数
两种方法都可以,关键是逻辑要正确、完整,起码你自己调试的时候知道哪里出错了。
但是这里没体现出来,IOException是 NotFound的父类,第一个即使我用的if判断,虽然不会引发NotFound异常。
如果我上面说的成立的话,用IF避免掉一些异常,然后下面catch用一个Exception类,这样对于效率是否有帮助?
但是这里没体现出来,IOException是 NotFound的父类,第一个即使我用的if判断,虽然不会引发NotFound异常。
如果我上面说的成立的话,用IF避免掉一些异常,然后下面catch用一个Exception类,这样对于效率是否有帮助?
但是这里没体现出来,IOException是 NotFound的父类,第一个即使我用的if判断,虽然不会引发NotFound异常。
如果我上面说的成立的话,用IF避免掉一些异常,然后下面catch用一个Exception类,这样对于效率是否有帮助?强大的google还是告诉我,跟我一样有疑惑的人不少,终于再一个询问帖中找到了答案及解答。
问题:A 和B在性能上的区别在哪?
A:
try {
for(int i = 0; i < max; i++) {
String myString = ...;
float myNum = Float.parseFloat(myString);
myFloats[i] = myNum;
}
} catch (NumberFormatException ex) {
return null;
}
B:
for(int i = 0; i < max; i++) {
String myString = ...;
try {
float myNum = Float.parseFloat(myString);
} catch (NumberFormatException ex) {
return null;
}
myFloats[i] = myNum;
}
其实在功能上明显有区别,一个for循环中出现一个异常就终止,另一个则是会很负责任的把它全部跑完,但问题不是问功能,而是问性能上的区别。性能无非就是看 空间消耗,时间消耗 ,想当然就觉得try catch重复执行了这么多次肯定比只执行了一次跑得肯定慢,空间消耗肯定更大。好吧,哥承认完全不了解其中的工作原理。讨论的结果是:在没有抛出异常的情况下,性能完全没区别。
而runtime异常是可以通过优化代码避免的,比如你在使用对象之前判断一下对象是否为空就可以避免空指针异常;在访问数组前比较一下下标值和数组长度就可以避免数组越界异常……楼主在访问文件之前,先判断一下文件是否存在,就可以避免文件找不到的异常