java日常-String/StringBuilder/StringBuffer

String不可变:

String是不可变的,每当把String参数作为方法的参数时候,都会复制一份引用,而该引用所指的一个新的对象一直待在单一的物理位置上。

StringBuilder对象:

当你为一个类编写tiString()对象时候,如果字符串操作比较简单,那就可以信赖编译器,他会为你合理的构造最终的字符串结果。但是,如果你要在toString()方法中使用循环,那么最好自己创建一个StringBuilder对象,用它来构建最终的结果。

比如:

public class UsingStringBuilder {
    public Random rand = new Random(47);
    
    public String toString(){
        //如果在toString()中使用了循环,那么要建立StringBuilder对象
        StringBuilder sb = new StringBuilder("[");
        for(int i=0;i<25;i++){
            sb.append(rand.nextInt(100));
            sb.append(", ");
            
        }
        sb.delete(sb.length()-2, sb.length());
        sb.append("]");
        return sb.toString();
    }
    
    public static void main(String[] args){
        UsingStringBuilder usb = new UsingStringBuilder();
        System.out.print(usb);
    }

}

执行结果:

[58, 55, 93, 61, 61, 29, 68, 0, 22, 7, 88, 28, 51, 89, 9, 78, 98, 61, 20, 58, 16, 40, 11, 22, 4]

StringBuildr与StringBuffer:

StringBuilder是java SE5引入的,在这之前java用的是StringBuffer。StringBuffer是线程安全的,所以说开销也会大一些;在使用String中,编译器会自动引入java.lang.StringBuilder类,虽然我们在源代码中没有使用SringBuilder,但是编译器会自动主张的使用它,因为StringBuilder更加高效。

总而言之,StringBuilder是高效的,StringBuffer是线程安全的,但是开销比较到。

 StringBuilder中经常弄到的方法:

insert()、relieace()、substring()、reverse()、append()、tostring()、delete()

ps:本博客参考自《java编程思想》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值