Consider
protected StringBuilder setOne(){ StringBuilder builder=new StringBuilder(); try{ builder.append("Cool"); return builder.append("Return"); }finally{ builder.append("+1"); } }
but
protected StringBuilder setOne(){ StringBuilder builder=new StringBuilder(); try{ builder.append("Cool"); StringBuilder ret = builder.append("Return"); // 1 return ret; // 2 }finally{ builder.append("+1"); //3 } }
line 1 is executed, builder returned as the result. Then line 3 is executed, and builder added +1 , then ret returned, which is a "link" to the object referenced by builder . The same goes for the second case. Hope this is understandable.
khachik
source share