重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
StringBuffer和StringBuilder的区别是什么?相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。
创新互联专注于网站建设,为客户提供成都网站建设、成都做网站、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,成都品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。
1.StringBuffer和StringBuilder的区别?
共同点:
都是可变的字符序列
不同点:
StringBuffer:是一个线程安全的类, 同步的,线程角度来说,执行效率低
StringBuilder:是一个线程不安全的类,不同步的,线程角度来说,执行效率高
在单线程程序中,StringBuilder用来替代StringBuffer
2.StringBuffer和数组都属于容器,有什么区别?
StringBuffer:
构造的是一个字符串缓冲区,里面存储的内容都字符串内容,可变的字符序列,它的长度可以变化的!
数组:
存储元素必须是同一种数据类型 int[] arr = {int类型的元素...} ; 数组的长度是固定的,不支持可变的!
3.StringBuffer和String类型作为形式参数有什么区别?
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" 是直接可以传递出去的
}
以上就是StringBuffer和StringBuilder区别的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注创新互联行业资讯!