-2 java stringbuilder exception finally try-catch
以下代码的输出是"Test Passed"; 谁能解释一下为什么?
public class Test {
public static void main(String args[]) {
System.out.println(new Test().print());
}
protected StringBuilder print() {
StringBuilder builder = new StringBuilder();
try {
builder.append("Test ");
return builder.append("Passed!!!");
} finally {
builder = null;
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,Java的作用如下:
StringBuilder valueToReturn = builder.append("Passed!!!");
executeFinallyBlock();
return valueToReturn;
Run Code Online (Sandbox Code Playgroud)
无论你在finally块中做什么,Java都会保留对要返回的值的引用,并返回该引用.所以它变成:
StringBuilder valueToReturn = builder.append("Passed!!!");
builder = null;
return valueToReturn;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
487 次 |
最近记录: |