java-String,StringBuffer,StringBuilder

上结论,在java中String用的挺多的。有的时候,面试会问

String,StringBuffer,StringBuilder有什么区别

  • String一旦赋值,那么这个值就定了,就是一个常量。
  • StringBuffer和StringBuilder都是可变长的字符串。可以对这两的对象的值进行增删改。
  • StringBuffer是线程安全的但是性能较低,看来StringBuffer是加了同步关键字了,StringBuilder是性能强但是线程不安全,推荐使用StringBuilder.

看下百度里的图片,这样就印象深刻一些。
下面绿色的finally打错了,应该是final.
在这里插入图片描述

在这里插入图片描述
如果直接赋值给String,看来字符串对象保存的地址是一样的,就是在常量池里创建的对象。

StringBuffer,StringBuilder的用法相同

StringBuilder builder = new StringBuilder();
		
		Object obj = new Object();
		
		//StringBuilder对象.append(***) 这个就是可以添加到字符串的末尾,可以添加很多类型的东西,基本类型,引用类型,对象都可以添加
		builder.append(13456);
		builder.append("abc");
		builder.append(obj); //添加对象,保存的是地址
		
		System.out.println(builder);
		
		builder.delete(1, 5); //删除开始下标到到结束下标,不包括结束下标
		System.out.println(builder);
		
		builder.deleteCharAt(5); //删除某个下标的字符,如果下标越界,就会报错
		System.out.println(builder);
		
		builder = builder.replace(0, 1, "123"); //替代,开始下标到结束下标,添加的字符串甚至可以下标越界
		System.out.println(builder);
		
		builder.insert(1, '8'); //插入,前面一个参数是下标,后面一个元素是字符。
		System.out.println(builder);

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/toomemetoo/article/details/112635762