黑马程序员 : 对String的总结

本文通过几个示例详细解析了Java中字符串的创建方式及其比较时的内存引用情况,包括直接量和new关键字创建的区别,以及字符串拼接时的性能考虑。

---------------------- <a href="http://edu.youkuaiyun.com/heima" target="blank">android培训</a>、<a href="http://edu.youkuaiyun.com/heima" target="blank">java培训</a>、期待与您交流! ----------------------

 
                String s1="abc";
 
                String s2="abc";
 
                String s3=new String("abc");
 
               
                System.out.println("abc"==s1);//true,引用s1指向常量池中的String常量"abc"
 
                System.out.println(s1==s2);//true,引用s1、s2都指向常量池中的"abc"
 
                System.out.println(s1==s3);//false,引用s3指向堆中新建的new String("abc");
 
               
                String s4="a";
 
                String s5="a"+"b";
 
                String s6=s4+"b";
 
                final String s7="a";
 
                String s8=s7+"b";
 
                String s9="ab";
 
               
                System.out.println(s5==s9);//true,根据编译器合并已知量的优化功能,相当于s5="ab";
 
                System.out.println(s6==s9);//false,编译器真正运行的是String s6 = (new StringBuilder()).append(s4).append("b").toString();
 
                System.out.println(s8==s9);//true,由于s7是常量,同s5
 
      

 

---------------------- <a href="http://edu.youkuaiyun.com/heima" target="blank">android培训</a>、<a href="http://edu.youkuaiyun.com/heima" target="blank">java培训</a>、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值