String和StringBuffer

这篇博客探讨了Java中的String和StringBuffer类。String是字符常量,不可变对象,每次修改都会创建新对象。相比之下,StringBuffer是线程安全的,其内容可变,更适合于字符串操作频繁且考虑性能的场景。文章还提到了两者之间的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String            字符串常量

StringBuffer  字符串变量(线程安全)

String是“字符创常量”,是不可改变的对象。

String str = "abc";
str = str+123;
System.out.print(str);// result : abc123
JVM代码解析机制:

(1))创建对象str,并赋值"abc"

(2)创建一个新的对象str,执行第二行代码,也就是说我们之前对象str并没有改变,因此我们说String类型是不可改变的对象

由于这种机制,每当用String操作字符串时,实际上是在不断的创建新的对象,而原来的对象就会变为垃圾被GC掉,这样执行代码效率低.

String和StringBuffer的主要区别:

String内容不可改变,StringBuffer内容可以改变.


String和StringBuffer之间的相互转换:

       
String转换为StringBuffer:

        String str = "Hello World!";
        System.out.println(str);
 
        //方式一:构造方法
		StringBuffer buffer = new StringBuffer(str);
         System.out.println(buffer);
  
         //方式二:append方法
         StringBuffer buffer = new StringBuffer();
         buffer.append(str);
         System.out.println(buffer);
StringBuffer转换为String:

//创建一个StringBuffer对象
        StringBuffer buffer = new StringBuffer();
        buffer.append("Hello World!");
        System.out.println(buffer);
  
         //方式一:通过构造方法
         String str = new String(buffer); 
         System.out.println(str);

         //方式二:通过toString方法
        String str = buffer.toString();
        System.out.println(str);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值