关于 String、StringBuffer 和 StringBuilder 说法错误的是()

题目
单选题
关于 String、StringBuffer 和 StringBuilder 说法错误的是()
A

String 创建的字符串是不可变的

B

StringBuffer 创建的字符串是可变的,而所引用的地址一直不变

C

StringBuffer 是线程安全的,因此性能比 StringBuilder 好

D

StringBuilder 没有实现线程安全,因此性能比 StringBuffer 好

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

STRING和STRINGBUILDER区别


正确答案:
 

第2题:

5 string 和 stringbuffer的区别?


正确答案:

 

它们都是处理字符串的类,但是它们有一个最大的区别,那就是,String对象是存储你不能改动的文本字符

串,相反,如果你希望改动,则应使用StringBuffer类作为替换.

第3题:

Which two scenarios are NOT safe to replace a StringBuffer object with a StringBuilder object?()

A.When using versions of Java technology earlier than 5.0.

B.When sharing a StringBuffer among multiple threads.

C.When using the java.io class StringBufferInputStream.

D.When you plan to reuse the StringBuffer to build more than one string.


参考答案:A, B

第4题:

public class TestString3 {  public static void main(String[] args) {  // insert code here  System.out.println(s);  }  }  Which two code fragments, inserted independently at line 3, generate the output 4247?()

  • A、 String s = “123456789”; s = (s-”123”).replace(1,3,”24”) - “89”;
  • B、 StringBuffer s = new StringBuffer(”123456789”); s.delete(0,3).replace( 1,3, “24”).delete(4,6);
  • C、 StringBuffer s = new StringBuffer(”123456789”); s.substring(3,6).delete( 1 ,3).insert(1, “24”);
  • D、 StringBuilder s = new StringBuilder(”123456789”); s.substring(3,6).delete( 1 ,2).insert( 1, “24”);
  • E、 StringBuilder s = new StringBuilder(”123456789”); s.delete(0,3).delete( 1 ,3).delete(2,5).insert( 1, “24”);

正确答案:B,E

第5题:

String和StringBuffer类有什么区别


正确答案:String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值

第6题:

String 字符串常量,StringBuffer 字符串变量(线程安全),StringBuilder 字符串变量(非线程安全)


正确答案:
简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢,而特别是以下的字符串对象生成中, String 效率是远要比 StringBuffer 快的: 3、String 和StringBuffer的区别?
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

第7题:

System.String和System.StringBuilder有什么区别?


正确答案:System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。

第8题:

String 和StringBuffer的区别


正确答案:

 

JAVA 平台提供了两个类:String 和StringBuffer,它们可以储存和操作字符串,即包含多个

字符的字符数据。这个String 类提供了数值不可改变的字符串。而这个StringBuffer 类提供

的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,

你可以使用StringBuffers 来动态构造字符数据。另外,String 实现了equals 方法,new

String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer 没有实现equals 方法,所

以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。

接着要举一个具体的例子来说明,我们要把1 到100 的所有数字拼起来,组成一个串。

StringBuffer sbf = new StringBuffer();

for(int i=0;i<100;i++)

{

sbf.append(i);

}

上面的代码效率很高,因为只创建了一个StringBuffer 对象,而下面的代码效率很低,因为

创建了101 个对象。

String str = new String();

for(int i=0;i<100;i++)

{

str = str + i;

}

第9题:

Whichtwo scenarios are NOT safe to replace a StringBuffer object with a StringBuilder object?()

  • A、When using versions of Java technology earlier than 5.0.
  • B、When sharing a StringBuffer among multiple threads.
  • C、When using the java.io class StringBufferInputStream.
  • D、When you plan to reuse the StringBuffer to build more than one string.
  • E、Enitiation of separate design processes to the separation of users

正确答案:A,B

第10题:

String与StringBuffer的区别()。

  • A、String是不可变的对象,StringBuffer是可以再编辑的
  • B、String是常量,StringBuffer是变量
  • C、String是可变的对象,StringBuffer是不可以再编辑的
  • D、以上说法都不正确

正确答案:A,B

更多相关问题