黑马程序员技术交流社区
标题:
谁能解释下这个方法的运行结果
[打印本页]
作者:
返璞归真
时间:
2014-12-3 09:45
标题:
谁能解释下这个方法的运行结果
public class Test2 {
public static void main(String[] args) {
StringBuilder sBuilder = new StringBuilder("AB");
String resulet = getString(sBuilder);
System.out.println(sBuilder);
System.out.println(resulet);
}
private static String getString(StringBuilder sb) {
try {
sb.append("CD");
return sb.toString();
} finally {
sb.append("EF");
}
}
}
运行结果:
ABCDEF
ABCD
为什么下面那行不是ABCDEF???
作者:
金福林
时间:
2014-12-3 10:06
看注释,这样解释能看懂吧
public static void main(String[] args) {
StringBuilder sBuilder = new StringBuilder("AB");//1,添加了AB
String resulet = getString(sBuilder);
System.out.println(sBuilder);
System.out.println(resulet);
}
private static String getString(StringBuilder sb) {
try {
sb.append("CD");//2,添加了CD
return sb.toString();//3,返回sb,注意此时trycatch中先执行try中的return语句,此时已经返回了sb的值ABCD
} finally {
sb.append("EF");//再添加添加到sb上而不会改返回值
}
}
作者:
返璞归真
时间:
2014-12-3 10:08
金福林 发表于 2014-12-3 10:06
看注释,这样解释能看懂吧
public static void main(String[] args) {
{:2_36:}{:2_36:}:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2