public class Test {
public static void main(String[] args) {
System.out.println(test());
}
public static int test(){
int i=100;
try {
int b=100/0;
} catch (Exception e) {
e.printStackTrace();
return i;
}finally{
i++;
}
return 0;
}
}为什么打印出的结果是100?不是101吗?BufferedOutputStream bos=
new BufferedOutputStream(
new FileOutputStream("file.date"));
bos.write(100);
假设file.dat不存在,运行该程序之后,文件file.dat的字节数为0,为什么?
求指教!JavaIO异常
解决方案 »
- JFrame里动态显示其它JFrame或JPanel该如何实现?
- 怎么样快速抽象出对象的一般属性>类来.
- hibernate 映射sql server中的binary字段做主键
- String.LastIndexof方法具体用法?
- 怎么在图片上写文字?而且是中文....最好有例子..谢谢!
- 请教
- jkd1。4。2中自订程序库路径的设置 (散分100)
- Java可以对图片进行处理么?如RiSize等
- 静态方法能被实例引用吗??
- 哪位有比較好的JAVA書籍給小弟寄一份,謝謝!
- java swing JTable 如何在行数据前面增加数字,如下图
- 请问preferences中如何存储LinkedList<Map<String,object>>数据
1、finally是在 return 表达式运算后前执行的,所以函数返回值是在finally执行前确定的2 i++与++i的区别
++i才先计算
然后执行catch,返回i.
虽然finally最后会执行i++;但是因为i在此之前已经被返回了,
所以i++的值是101,但没有被返回。返回的是100
try catch finally执行顺序
1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍会执行;3、finally是在return表达式运算后执行的,所以函数返回值是在finally执行前确定的;4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。第二个问题:
就是没清缓存,close()前加个flush()就好了