String,StringBuffer与StringBuilder的区别

来源:互联网 发布:nb iot网络架构 编辑:程序博客网 时间:2024/06/16 01:08

  String为字符串常量,是不可变的对象,每次String类型进行改变的时候,就等同于生成一个新的String对象,所以经常改变的字符串一般不用String;因为String每次生成对象都会对系统性能产生影响,特别当内存中无引用对象以后JVM的GC就会开始工作,那速度是相当慢的。所以对于大数据字符窜的拼接,采用StringBuffer和StringBuilder。

StringBuffer和StringBuilder字符串为变量,但是StringBufffer是线程安全的,StringBulider是非线程安全的,所以StringBuilder的效率要高于StringBuffer,但是一般情况下都是使用StringBuffer,因为StringBuffer线程比较安全。

但是有时候会考虑优先使用String,比如当字符窜拼接的时候,String直接用加号拼接的时候,StringBufeer用apeed:String=“I ”+"am”+“a”+“beautiful”+“girl”;StringBuffer=new StringBuffer("I am").append("beauftiful").append("gril");这个时候String比StringBuffer要快。

但是当是单线程的时候会建议使用StringBuilder,因为StringBUilder的效率比StringBuffer的效率高。

0 0
原创粉丝点击