string、stringBuffer和stringBuilder区别

Java string类——string字符串常量

string是字符串常量,字符串在java中属于对象。而且,string有一个特性,即初始化了就不可更改。所以每次对string进行的操作其实实战上是新建了一个新的string,将之前的指针指向新的位置。这样的操作对于一些经常需要改变的string值来说,就会造成效率的低下以及造成大量的空间浪费。所以就有了另外的两个类String Buffer和String Builder。

Sting Buffer和String Builder——字符串变量

string Buffer和string Builder类的对象可以多次被修改,而且不会每次修改都产生新的对象来浪费空间。所以如果字符串在程序中会被多次修改,可以使用这两种类型来初始化。
而string Buffer和string Builder中也有一定的区别。之间最大的区别就是string Buffer是线程安全的,可以在多线程中使用。而string Builder是线程不安全的,不可以在多线程中使用。但是string Builder的速度又优于string Buffer,所以如果是在单线程中,则使用string Builder则更优于string Buffer。

三者之前的区别

(1)字符修改上的区别(主要)

  • String:不可变字符串;
  • StringBuffer:可变字符串、效率低、线程安全;
  • StringBuilder:可变字符序列、效率高、线程不安全;

(2)初始化中,string可以被赋空值,而后两者不可以。

小结

(1)如果要操作少量的数据用 String;
(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;
(3)单线程操作字符串缓冲区下操作大量数据StringBuilder(推荐使用)。

 

本文学习自大佬:https://blog.csdn.net/weixin_41101173/article/details/79677982

posted @ 2019-03-14 17:14  Mask_D  阅读(468)  评论(0编辑  收藏  举报