string是字符串常量,字符串在java中属于对象。并且,string有一个特性,即初始化了就不可更改。因此每次对string进行的操做其实实战上是新建了一个新的string,将以前的指针指向新的位置。这样的操做对于一些常常须要改变的string值来讲,就会形成效率的低下以及形成大量的空间浪费。因此就有了另外的两个类String Buffer和String Builder。java
string Buffer和string Builder类的对象能够屡次被修改,并且不会每次修改都产生新的对象来浪费空间。因此若是字符串在程序中会被屡次修改,能够使用这两种类型来初始化。
而string Buffer和string Builder中也有必定的区别。之间最大的区别就是string Buffer是线程安全的,能够在多线程中使用。而string Builder是线程不安全的,不能够在多线程中使用。可是string Builder的速度又优于string Buffer,因此若是是在单线程中,则使用string Builder则更优于string Buffer。安全
(1)字符修改上的区别(主要)多线程
(2)初始化中,string能够被赋空值,然后二者不能够。学习
(1)若是要操做少许的数据用 String;
(2)多线程操做字符串缓冲区下操做大量数据 StringBuffer;
(3)单线程操做字符串缓冲区下操做大量数据StringBuilder(推荐使用)。ui
本文学习自大佬:https://blog.csdn.net/weixin_41101173/article/details/79677982.net