我从这里修改Java:http://java-success.blogspot.com.au/2012/06/core-java-coding-questions-frequently.html并提出了这个问题:
"Q1.以下代码片段的输出结果是什么?
String s = " Hello ";
s += " World ";
s.trim( );
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
A1.输出将是
" Hello World "
Run Code Online (Sandbox Code Playgroud)
带有前导和尾随空格.有些人会期待一个修剪过的"Hello World".
那么,这个问题试图测试哪些概念?
字符串对象是不可变的,在s.trim()行中有一个技巧.了解有资格进行垃圾回收的对象引用和无法访问的对象."
有人可以解释为什么不删除尾随的空格?
该方法trim()不会修改String,这是不可变的.它返回修剪后的String,立即被忽略,保持s不变.更换
s.trim( );
Run Code Online (Sandbox Code Playgroud)
同
s = s.trim( );
Run Code Online (Sandbox Code Playgroud)