关于StringBuffer和String

116 篇文章 22 订阅

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

一、String x="abc";和String y=new String("abc")区别:
String x="abc":变量x指向的是常量池的字符串常量对象。
String y=new String("abc"):变量y指向的是堆中的字符串对象,但堆中字符串对象需要以常量池中的字符串常量对象作为模板。所以此语句产生了两个对象,一个在常量池中,一个在堆中。

 二、StringBuffe和String的使用区别:

package com.lovo;

public class Test {

	public static void main(String[] args) {

		// 字符串具有长度不可改变的特性,在对字符串对象做添加、删除、替换时不会更改原来的字符串对象,而是产生新的字符串对象。
		String s = "abcdabc";
		s.replace("abc", "9");
		System.out.println(s);
		
		// StringBuffer会在缓冲区中开辟一个空间,当对StringBuffer的内容作连接、替换、删除等操作时,不会产生新对象。
		// 如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么
		// 使用StringBuffer的toString()方法即可。
		String x = "abc";
		StringBuffer sb = new StringBuffer("abc");
		test(x, sb);
		System.out.println(x + "    " + sb);
	}

	private static void test(String x, StringBuffer sb) {
		x = x + "***";
		sb.append("***");
	}

}


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u010142437

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值