不执行,能直接说出结果么,为啥? 没啥特别的还以为能输出2的,就一点finally肯定是要执行,即使catch抛异常 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可是 都return 了啊 finally肯定会执行的,不管return与否 try中先return了,但是没有输出,return的值先放在一个临时文件中,finally执行后,return的值再输出 可是 都return 了啊java就是这样设计的,有些资源清理(如关闭文件,数据库连接)必须总是执行,即使有异常发生,也可以根据把需要总是需要执行的代码放进去 finally 这么叼,他家人知道不? 可是 都return 了啊return又怎样。public static String get(){ try { System.out.println("返回1"); return "1"; } catch (Exception e) { // TODO: handle exception return "-1"; }finally{ System.out.println("返回2"); return "2"; } } finally 在return之前执行 ,如果finally中含有return语句,其他的return语句将不执行。 可是 都return 了啊return又怎样。public static String get(){ try { System.out.println("返回1"); return "1"; } catch (Exception e) { // TODO: handle exception return "-1"; }finally{ System.out.println("返回2"); return "2"; } }这个要怎么解释 谁能解释解释 return 和 finally,到底咋回事? return 和 finally 他俩到底有没有 jq 啊? 关于finally和return,你读下编译后的字节码吧,运行过程非常清楚。 就是想说直接解释一下return和finally原理~ 这是java虚拟机说了算啊,它说finally必须得执行,那不管你在哪return,所以别纠结这种问题了,java语法就这样规定的,你能咋滴。 return 并不是直接就返回值的,它先把值压入栈中等待finally里面的语句执行完毕 再出栈把值返回如果你的finally里面也有return 就会把原来的那个值覆盖 (个人理解 觉的是这样的) 结果是----1分析:在try语句块中return “-1”只是把return的值返回给main了,但是程序的执行点还没有返回到main方法里面,而是要向下执行finally语句块(无论如何,finally都是会执行的),finally语句块里的print(“----”)执行,然后程序执行回到main方法将return的值-1赋值给s,然后print(s)所以结果是先 打印 ---- 而后打印 s=“1” 这是java虚拟机说了算啊,它说finally必须得执行,那不管你在哪return,所以别纠结这种问题了,java语法就这样规定的,你能咋滴。这不是纠结的问题,我就是想明白深入一下,当然这种问题都知道答案。但是java为什么会是这样的~需要深入考虑的啊~ 新手struts2的问题,急!!!! struts2里select标签的问题 关于XML的问题 hibernate产生数据表失败 应聘JAVA软件工程师 jsf的dataTable中的下拉列表导致commandLink和commandButton失效 怎么实现JSP页面中无JAVA代码 求助关于struts表单 这是什么问题,高手来看看. 要在jsp见面显示当前日期+星期以及接下来的6天 请教 hibernate查询缓存问题~ httpclient自动登录的问题
java就是这样设计的,有些资源清理(如关闭文件,数据库连接)必须总是执行,即使有异常发生,
也可以根据把需要总是需要执行的代码放进去
return又怎样。
public static String get(){
try {
System.out.println("返回1");
return "1";
} catch (Exception e) {
// TODO: handle exception
return "-1";
}finally{
System.out.println("返回2");
return "2";
}
}
return又怎样。
public static String get(){
try {
System.out.println("返回1");
return "1";
} catch (Exception e) {
// TODO: handle exception
return "-1";
}finally{
System.out.println("返回2");
return "2";
}
}
这个要怎么解释
关于finally和return,你读下编译后的字节码吧,运行过程非常清楚。
结果是
----
1分析:
在try语句块中return “-1”
只是把return的值返回给main了,但是程序的执行点还没有返回到main方法里面,而是要向下执行finally语句块(无论如何,finally都是会执行的),finally语句块里的print(“----”)执行,然后程序执行回到main方法将return的值-1赋值给s,然后print(s)所以结果是先 打印 ---- 而后打印 s=“1”