String和StringBufffer的区别

string的字符串操作都是废弃已有的对象,开辟一个新的内存空间创建一个新的对象

比如一个
string str= "字符串";

str += "a";

这样的操作后就会有两个字符串对象:"字符串"和"字符串a"了,并且"字符串"还要作回收。

但是用StringBulider就不会,StringBulider是一个字符串工厂,你丢了一千个字符串到里面做拼接,他不会不停的创建新的对象,

只有在最后调用ToString()的时候才作一次创建字符串的操作,这样的大量操作的时候效率就高很多了

时间: 2024-10-13 17:59:40

String和StringBufffer的区别的相关文章

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和

string与stringbuffer的区别

最近在做项目到时候遇到这个问题,犯了致命的错误,提示javaVM内存溢出. 问题原因:使用string拼接字符串,导致的.此字符串的量很大. 区别:string是非变长的字符串,在每次拼接的时候相当于每次都生成一个新的string对象,所以如果是循环22次,会生成22个string对象,而我们只需要最后一个,这就对javaVM造成了很大的影响,导致内存溢出. stringbuffer是生成一次对象后,每次在这个对象上面追加内容,这样就很大的提高了性能. string与stringbuffer的转

String和StringBuider的区别和相互转换

* StringBuilder:是一个可变的字符串.字符串缓冲区类. * * String和StringBuilder的区别:  *String的内容是固定的. * StringBuilder的内容是可变的. * * 构造方法: * StringBuilder() * * 成员方法: * public int capacity():返回当前容量 * public int length():返回长度(字符数) * * 容量:理论值 * 长度:实际值 * StringBuilder和String的相

【转载】String和StringBuffer的区别,以及StringBuffer的常用方法介绍

String与StringBuffer的区别简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象.StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类.所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些.String:在String类中没有用

c++ string c_str() 和data()区别

看下面的英文解释: const char* c_str ( ) const;Get C string equivalentGenerates a null-terminated sequence of characters (c-string) with the same content as the string object and returns it as a pointer to an array of characters.A terminating null character i

Java杂谈之StringBuffer----兼带String,StringBuffer,StringBuilder的区别

在Java中,用到最多的当属String类型的数据了 而这一点就要涉及String , StringBuffer , StringBuilder这三大类 下面主要来比较一下String和StringBuffer的区别,因为StringBuffer和StringBuilder 太相似,所以就不拿来比较了. 提及一下,StringBuffer和StringBuilder的区别 从安全性来说,StringBuffer更安全,StringBuffer主打线程安全 从执行效率来说,StringBuilde

string与stringbuilder的区别

1.分析string与stringbuilder的区别,我们先来看下面一段代码 首先我们使用string进行字符串的拼接 class Program { static void Main(string[] args) { //StringBuilder sb = new StringBuilder(); string str = null; //创建一个计时器,计算程序运行的时间 Stopwatch sw = new Stopwatch(); //开始计时 sw.Start(); for (in

Java中String和StringBuffer的区别

区别 1.String是不可变类,StringBuffer是可变类 如果要对String对象进行修改,则是新建了一个原来的String的拷贝,并且拷贝是StringBuffer,StringBuffer.toString()转换为String修改是在拷贝上进行的. 2.String是线程不安全的,后者是安全的 使用方法: StringBuffer sb=new StringBuffer(); sb.append("..."); leetcode中的一个应用 http://blog.cs

在JAVA中,String,Stringbuffer,StringBuilder 的区别

首先是,String,StringBuffer的区别 两者的主要却别有两方面,第一是线程安全方面,第二是效率方面 线程安全方面: String  不是线程安全的,这意味着在不同线程共享一个String的时候,需要先进行同步,否则会出现不同线程获得的值不同的情况,即线程不安全 StringBuffer 是线程安全的,在不同线程中共享的时候会自动同步,不需要手动同步. 效率方面: String在每次更改的时候均是重新建立一个变量,再将更改后的值赋予其中,多次更改之后会触发JVM的GC机制,占用资源