服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java入门--漫谈java程序的性能优化

java使得复杂应用的开发变得相对简单。毫无疑问,它的这种易用性对java的大范围流行功不可没。然而,这种易用性实际上是一把双刃剑。一个设计良好的java程序,性能表现往往不如一个同样设计良好的c++程序。在java程序中,性能问题的大部分原因并不在于java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用java.lang.string类和java.util.vector类,它能够显著地提高程序的性能。下面我们就来具体地分析一下这方面的问题。

在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() { thi

扫描关注微信公众号