什么时候用String,什么时候用StringBuffer rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 偷懒的时候用String要效率的时候用StringBuffer一般来说String体积小StringBuffer处理字符串效率高 字符串需要改变的时候用StringBuffer 不用变的字符串用String 应该是字符串需要大量的追加,修改的时候,就用StringBuffer,这样效率很高。 要经常改变字符串内容的时候 用StringBuffer 如果这个字符串很少变的话 用string如果一个字符串老是变来变去用StringBuffer具体情况具体对待 . 一般需要组织字符串时,用stringbuffer如StringBuffer sql=new StringBuffer();sql.append("select ...");sql.append(" from ...");效率比string高 大多时候是拼字符串的时候用StringBuffer 就向楼上拼sql语句 StringBuffer 主要是用于字段追加 效率比较高吧String 主要是用于定长字段 String是不变类,确实不适合用来组织字符串。StringBuffer sb=new StringBuffer();sb.append("a");sb.append("b");sb.append("c");这段代码生成4个对象a,b,c,abcString s = "a" + "b" + "c";这段代码生成5个对象a,b,c,ab,abc JDK5.0以后,多线程用StringBuffer,单线程用StringBuilder 记住他们的区别String不可以修改值,也就是说 String a="BBB";这个时候系统产生一个空间去放BBBa="BBBA"这个时候系统再产生一个空间去放BBBA,这样就产生了2个地址空间了每次String改变系统都要生成一个新的空间而StringBuffer则不同StringBuffer a = new StringBuffer("AAA");这个时候系统产生一个空间放AAAa.append("B"),这个时候a也会=AAAB但是他放在原来的空间不会新产生空间,这样就节省系统资源了 一句话,StringBuffer 适合变化的需要。 String不能改,StringBuffer能改! 一般来说String体积小StringBuffer处理字符串效率高-----------------------------------这个不一定的..如果你一两个字符连接还StringBuffer不如String 这是正解:记住他们的区别String不可以修改值,也就是说 String a="BBB";这个时候系统产生一个空间去放BBBa="BBBA"这个时候系统再产生一个空间去放BBBA,这样就产生了2个地址空间了每次String改变系统都要生成一个新的空间而StringBuffer则不同StringBuffer a = new StringBuffer("AAA");这个时候系统产生一个空间放AAAa.append("B"),这个时候a也会=AAAB但是他放在原来的空间不会新产生空间,这样就节省系统资源了 楼上有两个朋友说的很对了,再重复一下,希望楼主能记住:String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String另外,对于 String 我们不得不多说几句:1.它是引用类型,在堆上分配内存2.运算时会产生一个新的实例3.String 对象一旦生成不可改变(Immutable)3.定义相等运算符(== 和 !=)是为了比较 String 对象(而不是引用)的值 一般情况下用string对同一个字符串处理比较多的时候用stringBuffer JAVA关键字 SQL 的别名中,遇到的问题!!!!!!!!!!!!!!!! 百钱百鸡问题 JAVA界面图片问题 这样做总觉得不舒服,帮我看看 如何将一个较大的流(有上万行文本)较快的写到一个String中? 请问如何分辨java建立的是tcp还是udp,这段程序是tcp的客户端吧? 哪位大虾帮我解释一下 String类的toString方法 哪里下载? 请各位大侠指教 JDBC连接SQL Server2000 java编程2个utf文件的问题
要效率的时候用StringBuffer一般来说String体积小
StringBuffer处理字符串效率高
如果一个字符串老是变来变去用StringBuffer
具体情况具体对待 .
StringBuffer sql=new StringBuffer();
sql.append("select ...");
sql.append(" from ...");效率比string高
String 主要是用于定长字段
sb.append("a");
sb.append("b");
sb.append("c");
这段代码生成4个对象a,b,c,abcString s = "a" + "b" + "c";
这段代码生成5个对象a,b,c,ab,abc
String不可以修改值,也就是说
String a="BBB";
这个时候系统产生一个空间去放BBB
a="BBBA"
这个时候系统再产生一个空间去放BBBA,这样就产生了2个地址空间了
每次String改变系统都要生成一个新的空间
而StringBuffer则不同
StringBuffer a = new StringBuffer("AAA");
这个时候系统产生一个空间放AAA
a.append("B"),这个时候a也会=AAAB
但是他放在原来的空间不会新产生空间,这样就节省系统资源了
StringBuffer处理字符串效率高
-----------------------------------
这个不一定的..如果你一两个字符连接还StringBuffer不如String
记住他们的区别
String不可以修改值,也就是说
String a="BBB";
这个时候系统产生一个空间去放BBB
a="BBBA"
这个时候系统再产生一个空间去放BBBA,这样就产生了2个地址空间了
每次String改变系统都要生成一个新的空间
而StringBuffer则不同
StringBuffer a = new StringBuffer("AAA");
这个时候系统产生一个空间放AAA
a.append("B"),这个时候a也会=AAAB
但是他放在原来的空间不会新产生空间,这样就节省系统资源了
String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String另外,对于 String 我们不得不多说几句:
1.它是引用类型,在堆上分配内存
2.运算时会产生一个新的实例
3.String 对象一旦生成不可改变(Immutable)
3.定义相等运算符(== 和 !=)是为了比较 String 对象(而不是引用)的值
对同一个字符串处理比较多的时候用stringBuffer