我遇到了一些困惑。
我知道对象String
是不可变的。这意味着如果我从String
类中调用一个方法,replace()
那么原始内容String
不会改变。相反,根据原始返回一个新的。 String
但是,可以为相同的变量分配新值。
基于这个理论,我总是写a = a.trim()
where a
is a String
。一切都很好,直到我的老师告诉我,简单的a.trim()
也可以使用。这搞砸了我的理论。
我和老师的理论一起测试了我的理论。我使用了以下代码:
String a = " example ";
System.out.println(a);
a.trim(); //my teacher's code.
System.out.println(a);
a = " example ";
a = a.trim(); //my code.
System.out.println(a);
我得到以下输出:
example
example
example
当我向老师指出时,她说,
这是因为我使用的是较新版本的 Java (jdk1.7) 并且
a.trim()
可以在以前版本的 Java 中工作。
请告诉我谁有正确的理论,因为我完全不知道!