7、 写出以下代码执行结果,分析为什么?(没有分析结果不得分)
public class Test {
public static void main(String[] args) {
String s = "abc";
s.substring(1);
s.replace("bc", "xyz");
System.out.println(s);
String value = new String ("abc");
System.out.println(s == value);
}
}
*/
/*
答:1,System.out.println(s);该输出答案依然是abc,因为字符串被初始化就不能被改变,
所以需要重新指定一个String变量去接收s.replace("bc", "xyz");既String s1=s.replace("bc", "xyz");
然后再输出s1
2,System.out.println(s == value);该输出答案是false,因为String s = "abc";和String value = new String ("abc");
的区别是s在内存中只有一个对象abc,而String value = new String ("abc");在内存中有两个对象,new实例化出来的和abc,该输出语句“==”比较
的是内存地址是否相同,所以答案为false |