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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨朝辉 中级黑马   /  2012-3-22 22:34  /  1340 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

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