笔记——String,StringBuilder,StringBuffer

String

String创建过程
字符串拼写的几种方式
String重写equal()方法
JavaString深入理解

“+”号拼接
利用+进行拼接的时候,会将+号的拼接方式变换成StringBuilder的append方式,也就是说每次利用+会建立一个StringBuilder。因此,在循环内部意味着每执行一次循环,就会创建一个StringBuilder对象。因此循环里面不要用+号,在循环外面建立一个StringBuilder或StirngBuffer。

private static void test(String a,String b,String c) {
        String s = a + b + c;
    }
    //将会被优化为
    private static void test2(String a, String b, String c) {
        (new StringBuilder()).append(a).append(b).append(c).toString();
    }

StringBuilder与StringBuffer

扩容机制与性能

StringBuffer 类没有重写Object类下的equals方法,所以实质还是比较,所以如果需要比较两个StringBuffer对象是否相等则toString()方法转为String。
StringBuffer sb0=new StringBuffer(“hello”);
StringBuffer sb1=new StringBuffer(“hello”);
System.out.println(sb0
sb1);false
System.out.println(sb0.equals(sb1));false
System.out.println(sb0.toString().equals(sb1.toString()));true
关于equals()和==:
这个对于String简单来说就是比较两字符串的Unicode序列是否相当,如果相等返回true;String类已经重写过了equals方法。

而==是比较两字符串的地址是否相同,也就是是否是同一个字符串的引用。

而在符合数据类型中,则equals和==都是比较两对象的地址是否相同,除非重写equals

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值