本帖最后由 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);
 
 -         }
 
 - }
 
  复制代码 |