Java大厂面试备战之String和StringBuilder和StringBuffer

Java大厂面试备战之String和StringBuilder和StringBuffer

String, StringBuilder和StringBuffer的区别


一、String

String是由final修饰的类,所以是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁

        String str = "张三";
        System.out.println(str);
        System.out.println(str.hashCode());

二、StringBuffer

StringBuffer是可变字符串,拼接的方法可以调用append(),注意这是线程安全的字符,所以效率上会比StringBuilder会更低,一般运用场景在多线程场景下可变字符串

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("张三在").append("吃饭").append("干嘛");
        System.out.println(stringBuilder.length());
        System.out.println(stringBuilder.toString());

三、StringBuilder

StringBuffer是可变字符串,拼接的方法可以调用append(),这是线程不安全的字符,所以效率上会比StringBuffer会更高,开发过程中高频使用的字符类型

        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("李四在").append("公园").append("跳绳");
        System.out.println(stringBuffer.toString());
        System.out.println(stringBuffer.length());
        stringBuffer.delete(0,1);
        System.out.println(stringBuffer);

总结

根据具体运用场景去选择合适的字符类型,String适合大多数情况使用,StringBuilder可用于可变字符拼接是不会产生新的字符对象效率也高,StringBuffer适用于多线程场景下使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值