代码应用
public static void main(String[] args) { String s = " Hello "; s += " World "; s.trim( ); System.out.println(s); }
正确输出结果:
Hello World
问题:
1.经过Trim()之后应去掉两边多余的空格(包括制表符),为什么此处输出没有变化
说明:
1.字符串对象(String Object)是非可变的(immutable),这个题目容易迷惑人的地方在s.trim( )这一行。
2.理解对象引用和不可达对象会由垃圾回收器收集。
解决:
如果需要输出前后没有空格的”Hello World”,那么应该将s.trim( )再赋值给”s”。这个赋值操作可以让s指向新创建出来的字符串对象。
StringBuilder sb = new StringBuilder(" Hello "); sb.append(" World "); System.out.println(sb.toString().trim()); StringBuffer sf = new StringBuffer(" Hello "); sf.append(" World "); System.out.println(sf.toString().trim()); System.exit(0);
StringBuilder不是一个线程安全的类,因此仅仅用作本地变量是没有问题的。如果你希望用作实例变量,那么可以选择线程安全的StringBuffer类。
运行StringBuilder 会出现 ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JD
添加System.exit(0); 可避免
博文转载:
http://www.importnew.com/2217.html