黑马程序员技术交流社区
标题:
关于Stirng类的一道面试题
[打印本页]
作者:
京巨
时间:
2015-9-11 23:26
标题:
关于Stirng类的一道面试题
public class Demo {
public static void main(String[] args) {
String s1 = "你好";//s1 = 0x2233
String s2 = "你好";//s2 = 0x2233
System.out.println("s1 == s2 : " + (s1 == s2));//true
System.out.println("s1.equals(s2) : " + (s1.equals(s2)));//true
String s3 = "你好";
String s4 = new String("你好");
System.out.println("s3 == s4 : " + (s3 == s4));//false
System.out.println("s3.equals(s4) : " + (s3.equals(s4)));//true
String s5 = new String ("你好");
String s6 = new String("你好");
System.out.println("s5 == s6 : " + (s5 == s6));//false
System.out.println("s5.equals(s6) : " + (s5.equals(s6)));//true
//---------------------------------------------------------------------//
String s7 = "你好";
String s8 = "java";
String s9 = "你好java";
String s10 = s7 + s8;
String s11 = s7 + "java";
String s12 = "你好" + s8;
String s13 = "你好" + "java";//s13 = "你好java";
System.out.println("s9 == s10 : " + (s9 == s10));//false
System.out.println("s9 == s11 : " + (s9 == s11));//false
System.out.println("s9 == s12 : " + (s9 == s12));//false
System.out.println("s9 == s13 : " + (s9 == s13));//true
}
}
复制代码
作者:
ashun
时间:
2015-9-11 23:50
本帖最后由 ashun 于 2015-9-11 23:54 编辑
对于String对象,当不使用new生成对象时,如果内容一样,则内容会占同一个内存,两个引用指向了同一块内存;当使用new关键字时,内容会存储在不同的内存中;
equals比较的是两个对象的内容是否相同,而==比较的是两个对象的内存是否相同;
作者:
zzq18217362451
时间:
2015-9-12 00:11
看的有点晕
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2