StringBuffer,StringBuilder相关面试题

1.StringBufferStringBuilder的区别?
共同点:

都是可变的字符序列

不同点:

StringBuffer:是一个线程安全的类, 同步的,线程角度来说,执行效率低
StringBuilder:是一个线程不安全的类,不同步的,线程角度来说,执行效率高
在单线程程序中,StringBuilder用来替代StringBuffer

2.StringBuffer数组都属于容器,有什么区别?
StringBuffer:

构造的是一个字符串缓冲区,里面存储的内容都字符串内容,可变的字符序列,它的长度可以变化的!

数组:

存储元素必须是同一种数据类型 int[] arr = {int类型的元素…} ; 数组的长度是固定的,不支持可变的!

3.StringBufferString类型作为形式参数有什么区别?

String:

是一种特殊的引用类型,它作为形式参数和基本数据类型作为形式参数是一样的!

StringBuffer:

它作为形式参数,和引用类型一样,形式参数的改变直接影响实际参数

	//StringBuffer作为形参
	public static void main(String[] args) {
		StringBuffer sb1 = new StringBuffer("hello") ;
		StringBuffer sb2 = new StringBuffer("world") ;
		System.out.println("sb1:"+sb1); //hello
		System.out.println("sb2:"+sb2);//world
		change(sb1,sb2) ;
		System.out.println("sb1:"+sb1);//hello
		System.out.println("sb2:"+sb2);//worldworld
	}

	public static void change(StringBuffer sb1, StringBuffer sb2) {
		sb1 = sb2 ; // sb1= sb2 = "world"   :直接赋值的形式,形参传递不出去的!
		sb2.append(sb1) ;  //方法调用,形式参数 "worldworld" 是直接可以传递出去的
	}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值