黑马程序员技术交流社区
标题:
一道String方面的题目,你会吗?
[打印本页]
作者:
杜工
时间:
2014-8-21 07:51
标题:
一道String方面的题目,你会吗?
本帖最后由 杜工 于 2014-9-11 12:53 编辑
public class Test{
public static void main(String[] args){
String s1 = new String("amit");
System.out.println(s1.replace('m','r'));
System.out.println(s1);
String s3 = "arit";
String s4 = "arit";
String s2 = s1.replace('m','r');
System.out.println(s2);
System.out.println(s2 == s3);
System.out.println(s3 == s4);
}
}
骑士们,输出结果如何?
这算是道难题,需要完全理解字符串的创建机制。
作者:
格子、
时间:
2014-8-21 08:12
arit 调用Static的replace方法会返回一个新的字符串
amit 字符串是不可变的
arit S2已经是一个返回的新的字符串,引用指向的新的字符串
false 因为replace方法底层会产生一个新的字符串进行拼接,所以会产生一个新的字符串,不会指向已有的字符串
true 享元模式,指向了同一个对象
作者:
李章敏
时间:
2014-8-21 09:26
楼上正解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2