黑马程序员技术交流社区

标题: 对String连接的总结 [打印本页]

作者: 杨朝辉    时间: 2012-3-22 22:34
标题: 对String连接的总结
  1.         public static void main(String[] args)
  2.         {
  3.                 String s1="abc";
  4.                 String s2="abc";
  5.                 String s3=new String("abc");
  6.                
  7.                 System.out.println("abc"==s1);//true,引用s1指向常量池中的String常量"abc"
  8.                 System.out.println(s1==s2);//true,引用s1、s2都指向常量池中的"abc"
  9.                 System.out.println(s1==s3);//false,引用s3指向堆中新建的new String("abc");
  10.                
  11.                 String s4="a";
  12.                 String s5="a"+"b";
  13.                 String s6=s4+"b";
  14.                 final String s7="a";
  15.                 String s8=s7+"b";
  16.                 String s9="ab";
  17.                
  18.                 System.out.println(s5==s9);//true,根据编译器合并已知量的优化功能,相当于s5="ab";
  19.                 System.out.println(s6==s9);//false,编译器真正运行的是String s6 = (new StringBuilder()).append(s4).append("b").toString();
  20.                 System.out.println(s8==s9);//true,由于s7是常量,同s5
  21.         }
复制代码





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