黑马程序员技术交流社区

标题: String的细节弄不明白 [打印本页]

作者: 吴琼    时间: 2012-6-17 09:50
标题: String的细节弄不明白
public class Foo {
       public static void main(String[] args) {
              String strValue="ABCDEFG";
              strValue.substring(3);
              strValue.concat("123");
              System.out.println("result=" + strValue);
              String value = new String ("ABCDEFG");
              System.out.println(strValue== value);
              // ture
       }
}

作者: 淡然    时间: 2012-6-17 09:59
本帖最后由 淡然 于 2012-6-17 10:33 编辑
  1. public class Foo {
  2.        public static void main(String[] args) {
  3.               String strValue="ABCDEFG"; // 引用strValue 的值指向"ABCDEFG"对象
  4.               strValue.substring(3); // 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符
  5.                                              //末尾。此方法返回的值为:DEFG 同时strValue的值是不变的,因为你没有接收返回值
  6.               strValue.concat("123");//将指定字符串连接到此字符串的结尾。此方法返回值为:DEFG123 同时strValue的值不变,你没有接收返回值
  7.               System.out.println("result=" + strValue);//strValue的值一直未变"ABCDEFG"
  8.              String value = new String ("ABCDEFG");//新建一个对象Value,相当于new String (strValue);
  9.             System.out.println(strValue== value);//比较两个不同的对象的地址值,strValue不等于value,故结果为false
  10.             // ture
  11.        }
  12. }
复制代码
你的代码输出结果为:
result=ABCDEFG
false

作者: 晏文根    时间: 2012-6-17 10:26
public class Foo {
       public static void main(String[] args) {
              String strValue="ABCDEFG";
              strValue.substring(3);
              strValue.concat("123");//以上这两个方法并没有返回值哦你可以修改为strValue=strValue.substring(3); strValue=strValue.concat("123");便可以了
              System.out.println("result=" + strValue);
              String value = new String ("ABCDEFG");
              System.out.println(strValue== value);
              // ture
       }
}

作者: sbeeqnui1987    时间: 2012-6-17 10:36
String s0="java";
  String s1="java";
  String s2="ja" + "va";
  System.out.println( s0==s1 ); //true
  System.out.println( s0==s2 ); //true

equals方法判断的是对象的内容是否相等,而==判断的是引用是否相等。

==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
而equals()方法是String类里的方法,用于比较两个对象的引用植是否相同。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2