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

© 肚小糖 中级黑马   /  2015-8-25 14:01  /  605 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马