黑马程序员技术交流社区

标题: 字符串中的equals和"==" [打印本页]

作者: 肚小糖    时间: 2015-8-25 14:01
标题: 字符串中的equals和"=="
  1. public class StringDemo {
  2.         public static void main(String[] args){
  3.                 String s1 = "abc";
  4.                 String s2 = "abc";
  5.                 String s3 = new String("abc");
  6.                 //字符串创建的时候,有一个字符串常量池,s1创建后,"abc"放入其中。s2创建的时候,"abc"已经存
  7.                 //在于字符串常量池中,故引用变量s2直接指向了已经存在的"abc"字符串对象,故s1==s2。
  8.                 System.out.println(s1 == s2); //true
  9.                 //s1创建后,是在字符串常量池中创建了一个"abc"字符串对象。而s2是在堆内存中创建了另外一
  10.                 //个"abc"字符串对象。所以,两个对象不是同一个对象。
  11.                 System.out.println(s1 == s3); //false
  12.                 //String类复写了Object中的equals方法,建立了String类自己的判断字符串对象是否相同的依据。只
  13.                 //比较字符串内容,不比较地址。
  14.                 System.out.println(s1.equals(s2)); //true
  15.         }
  16. }
复制代码







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