:handshake/**
* 需求:6、 写出以下代码执行结果,分析为什么?(没有分析结果不得分)
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,String s= "abc";定义了一个字符串常量,abc,一但被初始化就不可改变值。
*· 2.调用String类的substring构造方法,从1角标位索引,返回该字符串的子串"bc".
*3.调用String类的replace构造方法,替换原字符串的字符“bc”为新字符“xyz”.
*4在控制台打印输出字符串s。结果应该为字符串“xyz”.
*5.String value = new String("abc");这是重新定义了字符常量value,并且地址值指向原有字符串"abc"的内存空间。
*6.在控制台打印输出s==value,返回结果是boolean型值。因为常量一但定义无法改变值,所以结果为ture.
*7.借组MyEclipse高级编辑器验证结果。
*/
public class Test6 {
//6、 写出以下代码执行结果,分析为什么?(没有分析结果不得分)
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);
}
}结果是:abc,false.和我的结果刚好相反!求分析哪里错了? |