if (StringUtils.isNotBlank(fsNum)){
sql.append("fsNum = '");
sql.append(fsNum);
sql.append("'");
}
if(StringUtils.isNotBlank(fiStatus)){
sql.append("fiStatus = '");
sql.append(fiStatus);
sql.append("'");
if (StringUtils.isNotBlank(fsNum)){
sql.append("fsNum = '"+fsNum+"'");
}
if(StringUtils.isNotBlank(fiStatus)){
sql.append("fiStatus = '"+fiStatus +"'");
}
请教,以上两种情况你会怎么选择呢,原因是什么呢
考虑性能的话,当然是第一种。
第二种又回到string的老路上去了,失去意义了。
话说
现在应该都用StringBuilder,而不是StringBuffer。
这样写流行些吧。
[code="java"]
sql.append("fsNum = '").append(fsNum).append("'");
[/code]
两者现在已经没什么区别了, 直接字符串连接, 编译器会对代码进行优化, 内部还会使用Stringbuilder append 的。。。 :oops:
不考虑多线程的情况下,两种方式是一样的,编译器编译的时候会把string的+操作用StringBuilder.append来代替的
直接使用字符串累加就行,编译器会转换成StringBuilder。
详见:[url]http://kiral.iteye.com/blog/1040986[/url]
二楼正解,我做过测试:[url]http://www.oseye.net/blog/74[/url]
当使用多个+符号时,编译器是会进行优化的,并不会创建多个string的对象
如果是三次以内的字符串相加,可以用String,三次以上用Stringbuffer。