Java程序的性能优化
时间:2008-03-16 23:21:31 来源: 作者:
Java使得复杂应用的
在java中,使用最频繁、同时也是滥用最多的一个类或许就是java.lang.String,它也是导致代码性能低下最主要的原因之一。请考虑下面这个例子:
| String s1 = "Testing String"; String s2 = "Concatenation Performance"; String s3 = s1 + " " + s2; |
几乎所有的Java程序员都知道上面的代码效率不高。那么,我们应该怎么办呢?也许可以试试下面这种代码:
| StringBuffer s = new StringBuffer(); s.append("Testing String"); s.append(" "); s.append("Concatenation Performance"); String s3 = s.toString(); |
这些代码会比第一个代码片段效率更高吗?答案是否定的。这里的代码实际上正是编译器编译第一个代码片段之后的结果。既然与使用多个独立的String对象相比,StringBuffer并没有使代码有任何效率上的提高,那为什么有那么多的Java书籍批评第一种方法、推荐使用第二种方法?
第二个代码片段用到了StringBuffer类(编译器在第一个片段中也将使用StringBuffer类),我们来分析一下StringBuffer类的默认构造函数,下面是它的代码:
| public StringBuffer() { this(16); } |
默认构造函数预设了16个字符的缓存容量。现在我们再来看看StringBuffer类的append()方法:
| public synchronized StringBuffer append(String str) { if (str == null) { str = String.valueOf(str); } int len = str.length(); int newcount = count + len; if (newcount > value.length) expandCapacity(newcount); str.getChars(0, len, value, count); count = newcount; return this; } |
Tags:
上一篇:没有了 下一篇:没有了
文章评论
共有 0人发表了评论 查看完整内容