浅析Java中String与StringBuffer拼接的区别

 更新时间:2017年06月29日 09:01:16   作者:Tmb  
String拼接会创建一个新的String对象,存储拼接后的字符串,StringBuffer拼接是直接在本身拼接,会即时刷新。下面通过本文给大家介绍Java中String与StringBuffer拼接的区别,感兴趣的朋友一起看看吧

学习笔记:

  1、String拼接会创建一个新的String对象,存储拼接后的字符串;

    StringBuffer拼接是直接在本身拼接,会即时刷新。

  2.String只能拼接String类型的字符串;

    StringBuffer能够拼接所有的类型的值。

public class Test {
  public static void main(String[] args) {
    String str1="abc";
    String str2="cba";
    //使用Stirng的concat拼接
    String s1=str1.concat(str2);
    String s2=str2.concat(str1);
    System.out.println("使用concat互相拼接:"+s1+":"+s2);
    //使用StringBuffer的append拼接
    StringBuffer sb1=new StringBuffer(str1);
    StringBuffer sb2=new StringBuffer(str2);<br>      
    StringBuffer s3=sb1.append(sb2);  
    StringBuffer s4=sb2.append(sb1);
    System.out.println("使用StringBuffer互相拼接:"+s3+":"+s4);<br>
    System.out.println("s3.append(s3):"+s3.append(s3)); //输出结果为:s3.append(s3):abccbaabccba
    System.out.println("s3:"+s3);            //输出结果为:s3:abccbaabccba  
    System.out.println(s1.concat(s2)==s1);//false,拼接会重新创建一个String(String的长度是不可变的)
    System.out.println(s3.append(s1)==s3);//true,StringBuffer是对自己进行操作会即时刷新
    <br>          
          int num=123;
          /*str1.concat(num);---此处报错*/
          StringBuffer s5=s4.append(num);
          System.out.println("s5:"+s5);
  }
   
}

  输出结果是:

使用concat互相拼接1:abccba:cbaabc

使用StringBuffer互相拼接1:abccba:cbaabccba

s3.append(s3):abccbaabccba
s3:abccbaabccba
false
true
s5:cbaabccba123

以上所述是小编给大家介绍的Java中String与StringBuffer拼接的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java并发编程之StampedLock锁介绍

    Java并发编程之StampedLock锁介绍

    这篇文章主要介绍了Java并发编程之StampedLock锁,StampedLock是并发包里面JDK8版本新增的一个锁,下文更多相关内容需要的小伙伴可以参考一下
    2022-04-04
  • Java 线程的生命周期完整实例分析

    Java 线程的生命周期完整实例分析

    这篇文章主要介绍了Java 线程的生命周期,结合完整实例形式分析了java线程周期相关的加锁、释放锁、阻塞、同步等原理与操作技巧,需要的朋友可以参考下
    2019-10-10
  • JAVA String常用方法超详细讲解

    JAVA String常用方法超详细讲解

    String其实是Java库中的一个预定义的类,String不是基本类型,而是引用类型,使用引用类型的变量称为引用变量,它引用一个对象,下面这篇文章主要给大家介绍了关于JAVA String常用方法的相关资料,需要的朋友可以参考下
    2024-04-04
  • linux下执行java程序的sh脚本分享

    linux下执行java程序的sh脚本分享

    这篇文章主要介绍了linux下执行java程序的sh脚本,仅供参考,但是设置的时候环境变量是最重要的,我就是环境变量一直不对,总是按网上查到的来,不明白怎么回事,才一直出错,其实环境变量就是你要执行的java程序所在的位置
    2014-09-09
  • 浅谈Java之Map 按值排序 (Map sort by value)

    浅谈Java之Map 按值排序 (Map sort by value)

    下面小编就为大家带来一篇浅谈Java之Map 按值排序 (Map sort by value)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 详解使用zxing库生成QR-Code二维码

    详解使用zxing库生成QR-Code二维码

    这篇文章主要介绍了详解使用zxing库生成QR-Code二维码的相关资料,需要的朋友可以参考下
    2017-05-05
  • spring boot的maven配置依赖详解

    spring boot的maven配置依赖详解

    本篇文章主要介绍了spring boot的maven配置依赖详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Java的Jackson库中复杂对象集合的几种简单转换

    Java的Jackson库中复杂对象集合的几种简单转换

    本文主要介绍了Java的Jackson库中复杂对象集合的几种简单转换。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 解决创建springboot后启动报错:Failed to bind properties under‘spring.datasource‘

    解决创建springboot后启动报错:Failed to bind properties under‘spri

    在Spring Boot项目中,application.properties和application.yml是用于配置参数的两种文件格式,properties格式简洁但不支持层次结构,而yml格式支持层次性,可读性更好,在yml文件中,要注意细节,比如冒号后面需要空格
    2024-10-10
  • Java String类正则操作示例

    Java String类正则操作示例

    这篇文章主要介绍了Java String类正则操作,结合实例形式分析了java针对数字的正则验证、过滤及邮箱正则验证相关操作技巧,需要的朋友可以参考下
    2019-07-07

最新评论