string、stringBuffer和stringBuilder区别

Java string类——string字符串常量

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

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(推荐使用)。ui

 

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

相关文章
相关标签/搜索