黑马程序员技术交流社区
标题: 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 编辑
- public class Foo {
- public static void main(String[] args) {
- String strValue="ABCDEFG"; // 引用strValue 的值指向"ABCDEFG"对象
- strValue.substring(3); // 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符
- //末尾。此方法返回的值为:DEFG 同时strValue的值是不变的,因为你没有接收返回值
- strValue.concat("123");//将指定字符串连接到此字符串的结尾。此方法返回值为:DEFG123 同时strValue的值不变,你没有接收返回值
- System.out.println("result=" + strValue);//strValue的值一直未变"ABCDEFG"
- String value = new String ("ABCDEFG");//新建一个对象Value,相当于new String (strValue);
- System.out.println(strValue== value);//比较两个不同的对象的地址值,strValue不等于value,故结果为false
- // ture
- }
- }
复制代码 你的代码输出结果为:
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 |