String 和StringBuffer的区别是什么?
发布网友
发布时间:2022-04-23 13:06
我来回答
共4个回答
懂视网
时间:2022-05-14 05:04
1 public class Test {
2 public static void main(String args[]) {
3
4 String str = "abc";
5 StringBuffer sb = new StringBuffer("abc");
6 Runtime runtime = Runtime.getRuntime();
7 long start = System.currentTimeMillis();
8 long startFreememory = runtime.freeMemory();
9 for (int i = 0; i < 10000; i++) {
10 str += i;
11 //测试StringBuffer时候把注释打开
12 //sb.append(i);
13 }
14 long endFreememory = runtime.freeMemory();
15 long end = System.currentTimeMillis();
16 System.out.println("操作耗时:" + (end - start) + "ms," + "内存消耗:"
17 + (startFreememory - endFreememory)/1024 + "KB");
18 }
19 }
测试结果:
使用String做10000次向一字符串后添加字符串
操作耗时:1872ms,内存消耗:1301KB
使用StringBuffer做10000次向一字符串后添加字符串
操作耗时:15ms,内存消耗:162KB
差别显著!
Dao持久层定义sql语句拼接参数之String和StringBuffer区别
标签:bsp 使用 lte build list blog 复制 的区别 template
热心网友
时间:2022-05-14 02:12
String
类代表字符串。
StringBuffer
一个类似于
String
的字符串缓冲区,但不能修改。
String一次给内容
StringBuffer可以分好几次给
,也就是缓冲的意思。。
String可以修改
Stringbuffer不能//、
就这些吧////
热心网友
时间:2022-05-14 03:30
String是不可变的
StringBuffer是现场安全的可变的,包含大多数String的常用方法
如果是大量字符串拼接,可以用StringBuffer,如果很少,可以直接用String的“+”
热心网友
时间:2022-05-14 05:04
string和stringBuffer有什么区别?
一、内部实现方式不同 1、String:在进行字符串处理时,会生成新的对象。2、StringBuffer:在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。二、使用情况不同 1、String:用在固定的字符串,不经常对字符串进行更改的情况。2、StringBuffer:经常需要对一个字符串进行修改,例如插入,删...
String类和StringBuffer类的区别
String与StringBuffer的区别 String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。1)StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBu...
String类和StringBuffer类的区别
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。在StringBuffe...
string和stringbuffer和stringbuilder的区别
string和stringbuffer和stringbuilder的区别如下:1、线程安全:StringBuffer:线程安全,StringBuilder:线程不安全。因为StringBuffer的所有公开方法都是synchronized修饰的,StringBuilder并没有StringBuilder修饰。2、缓冲区:StringBuffer每次获取toString都会直接使用缓存区的toStringCache值来构造一个字符串。而StringBui...
string和stringbuffer类的区别
String与StringBuffer的区别 简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。StringBuffer 的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用 ...
String类和StringBuffer类的区别
首先,String和StringBuffer主要有2个区别:(1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类。关于以上具体解释如下:在java中有3个...
string和stringbuffer和stringbuilder的区别是什么?
string和stringbuffer和stringbuilder的区别 1、String是字符串常量,而StringBuffer和StringBuilder是字符串变量。由String创建的字符内容是不可改变的,而由StringBuffer和StringBuidler创建的字符内容是可以改变的。2、StringBuffer是线程安全的,而StringBuilder是非线程安全的。StringBuilder是从JDK 5开始,为String...
String 与StringBuilder有什么区别
两者的区别:1. string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。2. 对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接...
string和stringbuffer和stringbuilder的区别
String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无...
string和stringbuffer和stringbuilder的区别
string和stringbuffer和stringbuilder的区别:1、可变与不可变2、初始化方式3、字符串修改方式4、是否实现了equals方法5、是否实现了hashCode方法1、可变与不可变 String类是一个不可变类,即创建String对象后,该对象中的字符串是不可改变的,直到这个对象被销毁。StringBuffer与StringBuilder都继承自Abstract...