首页 > 试题广场 >

String 和StringBuffer的区别

[问答题]
请你说明String 和StringBuffer的区别
底层/可变 线程安全
String final char value[] 不可变
StringBuffer char value[] 可变
StringBuilder char value[] 可变
编辑于 2019-04-15 18:51:51 回复(2)
String是final类,意味着一旦赋值,不可改变。而StringBuffer是可以改变的,通常谈到这俩者还有引入StringBuffer,三者联系起来来比较看他们的使用。StringBuffer是线程安全的,因为它内部使用了synchronized修饰,所以效率比builder要弱15%。三者builder最快其次buffer最后是String。
发表于 2019-01-22 16:25:01 回复(0)
String是只读字符串,意味着String引用的字符串内容不能被改变 ,而StringBuffer表示的字符串可以直接进行修改。
发表于 2019-01-17 16:33:44 回复(0)
相同点:String和StringBuffer都是线程安全的。
不同点:1.String的值不能随意改变,因为String是final修饰的,而StringBuffer的值可以改变。2.String底层实现了equals方法,而StringBuffer没有。
发表于 2020-02-28 11:38:08 回复(0)
  1. String是final类,一旦赋值,不可改变。而StringBuffer是可变的。
  2. StringBuffer是线程安全的,因为它内部使用了synchronized修饰,所以效率比StringBuilder要弱15%。三者builder最快其次buffer最后是String。
发表于 2019-07-29 15:18:41 回复(1)
string:对象一旦产生就不可以修改。 stringBuffer:对象的内容可以修改
发表于 2019-05-08 10:41:40 回复(0)
(1)String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承
(2)StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象。它只能通过构造函数来建立对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中付值的时候可以通过它的append方法.

发表于 2019-05-04 22:23:17 回复(0)
StringBuffer、String一样,也用来代表字符串:

String类是不可变类,任何对String的改变都会引发新的String对象的生成;

StringBuffer是可变类,任何对它所指代的字符串的改变都不会产生新的对象。
执行速度方面的比较: StringBuffer > String
发表于 2019-04-28 22:36:55 回复(0)
String类是不可变类,任何对String的改变都会引发新的String对象的生成; StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象。
发表于 2019-04-28 20:37:40 回复(0)
这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。
发表于 2019-04-26 22:38:06 回复(0)
string是不可变类,任何对string的改变都会引发新的string对象的生成 stringBuffer和stringBuilder则是可变类,任何对它指代的字符串的改变都不会产生新的对象 stringBuffer线程安全stringBuilder线程非安全
发表于 2019-04-26 20:14:36 回复(0)
string是不可变类,任何对string对象的改变都会产生新的string对象 stringbuffer是可变类,是线程安全的
编辑于 2019-04-26 20:04:25 回复(0)
1 String的长度是不可变的 StringBuffer的长度是可变的 2 使用 StringBuffer 主要就是在性能上的考虑 String 是一种非常常用的数据类型 但由于 String 是不可变对象 在进行 String 的相关操作的时候会产生许多临时的 String 对象 而 StringBuffer 在操作上是在一个缓冲中进行的 性能当然优越得多 不过 一般做为简单的字符串传递和其它操作 只要不改变字符串内容的操作 用 String 效率会高一些
发表于 2019-04-26 09:53:04 回复(0)
string是不可变的,任何对string的改变都会产生一个对象 stringbuffer是可变的,任何对他改变都不会产生一个对象,线程是安全的
发表于 2019-04-25 20:31:35 回复(0)
String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承
StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象。它只能通过构造函数来建立对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中付值的时候可以通过它的append方法.
发表于 2019-04-25 19:37:35 回复(0)
String是final类型一旦赋值不可变,StringBuffer可变且线程安全
发表于 2019-04-10 11:55:11 回复(0)
Stting是final类,它修饰的变量不能被赋值,是只读字符串,而Stringbuffer是可修改的,同时是线程安全的
发表于 2019-03-07 13:38:09 回复(0)
string类是引用数据类型,被final修饰,字符数据不可修改。而stringbuffer可以动态构造字符数据,stringbuffer是线程安全的。
编辑于 2019-03-05 22:12:17 回复(0)