String 、 StringBuilder 、 StringBuffer 的不同

本质上来说,String 、StringBuider 、StringBuffer 都是对字符串的存储
String 与 StringBuilder 、StringBuffer 最大的区别在于,String存储空间不变,一单改变赋值,其实只是换了个常量池的空间。

//当然String本身也是Class
String s=new String("sss");
//这样的空间上就是在(堆)heap中

但是StringBuider与StringBuffer空间都在heap中,且
两者都是可变结构,即长度可以改变
StringBuffer:线程安全,即用于多线程
StringBuider:线程不安全,即用于单线程

总结:(API原文翻译)
StringBuffer:线程安全,可变的字符序列;
StringBuilder:一个可变的字符序列。 此类提供与StringBuffer的相同的API,但不保证同步。
String:字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。

发布了4 篇原创文章 · 获赞 0 · 访问量 259

猜你喜欢

转载自blog.csdn.net/qq_38570733/article/details/103934502