当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: ? Java使得复杂应用的开发变得相对简单。
 

 

    摘要:一:使用system.data.oledb <%@page language="c#" debug="true"%><%@import namespace="system.data"%><%@import namespace="system.data.oledb"%><script language="c#" ru......
    摘要:// changepswdlg.cpp : implementation file// #include "stdafx.h"#include "address.h"#include "changepswdlg.h"#include "pswdset.h" #ifdef _debug#define new debug_new#undef this_filestatic ch......


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

【相关文章:java路径设置

在java中,使用最频繁、同时也是滥用最多的一个类或许就是java.lang.string,它也是导致代码性能低下最主要的原因之一。请考虑下面这个例子: 【扩展阅读:(原创)一个判断字符串的数值类型

【扩展信息:5. “强人”的“至强”处理器大脑

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);


...   下一页
    摘要:我们在这里用的是一个dll控件,此控件的功能很强大,大家可以到http://www.hi-ho.ne.jp/babaq/eng/basp21.html下载并安装这个控件,下面我来讲一下具体的实现方法和代码 首先,我自己写了一个dll,调用下载的那个dll,提供了几个接口,可以填入发送人和接受人等等信息,此控件代码如下: imports basp21libimports system.ioimports system.io.directory pub......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE