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异常
解决方案 »
- 急急急!
- 实现类似word的插入对象-难题求解!
- 如何启动多个java虚拟机
- 作好的application 能否在没有安装jdk的windows下运行?
- 我是这么在linux下装sdk的!!
- 线程为何挂起?
- 我怎么找不到idltojava?
- 有没有人用过 free chart ?
- s7110110(铁) 快去看我帖子呀~~~~~~~~~~~~~~~~~
- 使用BufferedOutputStream的write(byte[] b, int off, int len) 是不是会复制不完整?
- 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()就好了