String字符串拼接效率比较
2015-03-26 17:13
417 查看
字符串进行拼接方法:加号、contact方法和StringBuffer(StringBuilder)
也可以用 String.valueOf( ):
当相加的字符串中包含不确定量(变量)时,
它每次拼接都会创建一个StringBuilder对象,并且还要调用toString()方法将其转换为字符串,这样性能就大大降低了。
转载链接:
http://it.deepinmind.com/java/2014/03/24/java-string-performance.html;
http://www.cnblogs.com/0x00000000/archive/2012/06/08/string_append.html#top;
/article/7253940.html
也可以用 String.valueOf( ):
public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); }
1.“+”方法拼接字符串
在基础类前面加一个空串(”“+1)是最简单的方法,这个表达式的结果就是一个String,在这之后你就可以随意的进行字符串拼接操作了——编译器会自动将那些基础类型全转化成String的。但是这是这是最糟糕的实现方法(注意,这里不是确定量即常量字符串相加,因为如果是常量字符串相加,编译器会直接优化)。当相加的字符串中包含不确定量(变量)时,
string_exp + any_exp编译器将“+”编译为StringBuilder实现:
new StringBuilder().append( string_exp ).append( any_exp ).toString(),如果表达式里有多个+号的话,后面相应也会多多几个StringBuilder.append的调用,最后才是toString方法。
它每次拼接都会创建一个StringBuilder对象,并且还要调用toString()方法将其转换为字符串,这样性能就大大降低了。
2 StringBuilder.append()方法拼接
源码:public AbstractStringBuilder append(String str){ //如果为null值,则把null作为字符串处理 if(str==null) str = "null"; int len = str.length(); //字符长度为0,则返回本身 if(len == 0) return this; int newCount = count +len; //追加后的字符数组长度是否超过当前值 if(newCount > value.length()){ //加长,并做数组拷贝 expanCapacity(newCount); } //字符串复制到目标数组 str.getChars(0, len, value, count); count = newCount; return this; }
转载链接:
http://it.deepinmind.com/java/2014/03/24/java-string-performance.html;
http://www.cnblogs.com/0x00000000/archive/2012/06/08/string_append.html#top;
/article/7253940.html
相关文章推荐
- String字符串拼接效率比较
- String, StringBuffer, StringBuilder拼接字符串的执行效率比较
- String 字符串拼接方法 concat和+ 效率比较
- Javascript拼接字符串的效率比较:String.replace VS Array.push
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- .NET中string与StringBuilder在字符串拼接功能上的比较
- 【转载,实用】c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- Java 字符串拼接效率比较
- appendChild、拼接string、join三种方式比较字符串拼接
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- Java 字符串拼接效率比较
- C#代码优化—字符串拼接效率比较
- 字符串拼接效率比较
- string 和 stringBuilder在创建字符串的效率比较代码
- 拼接字符串的效率问题(String,StringBuffer,StringBuilder对比)
- Java字符串连接效率比较之String.concat() 连接符+号 和StringBuilder类
- C#入门篇6-4:字符串操作 string分割字符串效率比较
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- C#的StringBuilder 以及string字符串拼接的效率对照
- PHP ,与. 字符串拼接效率比较及原理