黑马程序员技术交流社区
标题:
String的相关问题
[打印本页]
作者:
武腊福
时间:
2015-5-17 00:16
标题:
String的相关问题
1. 编译并运行以下代码的输出结果是?( )
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 == s3);
System.out.println(s3 == s4);
请解!说下原因!
作者:
姜秋艺
时间:
2015-5-17 00:44
输出结果为arit amit false true
1. System.out.println(s1.replace('m','r')); 这个输出语句为什么会输出arit这个结果呢?
因为String replace(char oldChar, char newChar) 方法
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
2. System.out.println(s1);这个输出结果为amit
因为String replace(char oldChar, char newChar) 方法从栈堆死亡方法结束
而s1变量并没有接收被修改的变量 而String类型不可变 所以输出为amit
3. System.out.println(s2 == s3);输出结果为false
简单来说这两个对象比较的是地址值,都是新建对象所以地址值不同所以返回false
4. System.out.println(s3 == s4);输出结果为true
通第三条原理 所以输出 true
作者:
姜秋艺
时间:
2015-5-17 00:46
这么晚 问了朋友才回答出来 学业没达到 为了技术分也是拼了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2