A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴琼 中级黑马   /  2012-6-17 09:50  /  1774 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
       }
}

4 个回复

倒序浏览
本帖最后由 淡然 于 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

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
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
       }
}
回复 使用道具 举报
楼主 如果这段代码是你自己写得,我觉得你应该知道是怎么回事?但是,如果你不懂,
我建议你去看看java 的API
任何时候 javaApi 都是你最好的老师,我想你是想知道这些方法的细节,而不是程序的逻辑,所以 如果只是想知道一个类怎么用,我建议你先看API!
回复 使用道具 举报
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类里的方法,用于比较两个对象的引用植是否相同。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马