本帖最后由 Hakka_LGM 于 2015-7-13 23:16 编辑
这是我的理解。也不知是否准确。。。
- public class StringTest {
- public static void main(String[] args) {
- String s = "abc";
- // 返回从角标为1到最后的字符串,在这里即返回"bc"。
- // 但在这里没有让s=s.substring(1);所以s还是以前的值"abc"
- s.substring(1);
- // 用"xyz"替换"bc",在这里即返回"axyz"
- // 同上,没有让s=s.replace("bc", "xyz"); 所以s还是以前的值"abc"
- s.replace("bc", "xyz");
- // 所以输出"abc"
- System.out.println(s);
- String value = new String("abc");
- // value是new出来的。开辟了新的内存空间,
- // 那么其地址值与s肯定不一样。即,返回false。
- System.out.println(s == value);
- }
- }
复制代码 |