黑马程序员技术交流社区
标题:
字符串中的equals和"=="
[打印本页]
作者:
肚小糖
时间:
2015-8-25 14:01
标题:
字符串中的equals和"=="
public class StringDemo {
public static void main(String[] args){
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
//字符串创建的时候,有一个字符串常量池,s1创建后,"abc"放入其中。s2创建的时候,"abc"已经存
//在于字符串常量池中,故引用变量s2直接指向了已经存在的"abc"字符串对象,故s1==s2。
System.out.println(s1 == s2); //true
//s1创建后,是在字符串常量池中创建了一个"abc"字符串对象。而s2是在堆内存中创建了另外一
//个"abc"字符串对象。所以,两个对象不是同一个对象。
System.out.println(s1 == s3); //false
//String类复写了Object中的equals方法,建立了String类自己的判断字符串对象是否相同的依据。只
//比较字符串内容,不比较地址。
System.out.println(s1.equals(s2)); //true
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2