当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 随着时间的推移,Java虚拟机变得越来越好,但是通过一些简单的技巧,你仍然可以明显地改进程序的性能。
 

 

 ·全面认识java    »显示摘要«
    摘要:作scjp培训已经有一段时间了,到我这学习的有在校的大学生,也有在职的开发人员。通常这些学员此前都对java已有一些了解,但普遍对java缺乏总体的认识。于是学员总是问,java应该怎么学?java能做什么?什么是applet?什么是servlet、jsp、ejb?还有webspere、weblogic又是做什么的等等。之所以学员会有这些疑问,是因为大家普遍对java相关概念听说的太多而了解的又......
 ·深入理解abstract class和interface    »显示摘要«
    摘要:abstract class和interface是java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是......


提升JAVA程序的性能
随着时间的推移,java虚拟机变得越来越好,但是通过一些简单的技巧,你仍然可以明显地改进程序的性能.

【程序编程相关:Force10科学家探讨保护高性能网的复

【推荐阅读:微软公布Office07更多细节 十年来

简介 【扩展信息:微软公布7个安全漏洞补丁 呼吁用户升级I

java的诸多优点已经广为称道.特别是“一次编程,到处运行”的承诺使开发人员可以自由地进行跨平台应用程序的开发而不存在预处理器指令的开销.通常认为java的弱点在于其性能方面.

在当前这种认识并不是完全正确的,有很多产品可以提高java程序的性能并能够使其在很多应用程序中不再成为一个问题.例如,towerj是一种将java字节代码转换成高度优化的本地可执行程序的后期编译器,jrockit是一种具有自适应优化能力的服务器端的java虚拟机.尽管如此,运用一些简单的技巧可以使你不必购买上述的这些工具也能够改进java代码的性能.在文本中我将说明其中的一些.

本文的讨论主要基于那些高吞吐量的代码(服务器端).鉴于主要的开销是由那些涉及到对象创建与再创建的gui代码所引起的,对服务器端代码进行有效的性能估算指针是方法的执行时间.因此,对于所涉及到的示例代码,我记录了执行方法所需的平均时间.记录一个方法的精确执行时间并不是切实可行的,因此我对一系列方法进行计时并计算其平均值.这样做有效地模拟了那些以性能为关键的代码的执行.

每个示例都带有对字节代码操作进行解释的伪代码.所产生的实际的字节代码可以从cuj的web站点(www.cuj.com/code)获取.对所有字节代码的解释可以从javasoft的站点获得.

改善字符串处理的性能

同c++一样,java库中定义了自己的string类型.在其外表之下,这种类型是由一个char型数组所实现的,然而使用字符串并不需要理解这一点.null符(’\0’)是导致很多学生在学习与使用c++的过程中受挫的祸根;使用java则不必为此分心,程序员可以专注于应用程序本身以及创建应用程序所用的工具.但是存在着与这种省心的字符串处理方式相关的不利方面,那就是字符串的连接操作符‘+’.

这个操作符看起来十分有用.多数需要向流写入数据的应用程序都使用‘+’.例如:

string name = new string("joe");

system.out.println(name + " is my name.");

在上面的代码段中,看起来似乎在println语句中无法作出什么修改以改善其执行的速度.然而,这个语句所产生的字节代码(在此用伪代码表示)却揭示了事实,见程序清单1.

清单1:描述由字符串连接符‘+’所产生的字节代码操作的伪代码

create new string (str_1)

duplicate the string

load the constant string "joe" (str_2)

call string constructor

store this string in the local variable array position 0

get the static out field from the java.io.printstream class (out)

create a new stringbuffer (str_buf_1)

duplicate the stringbuffer

call stringbuffer constructor

store this stringbuffer in the local variable array position 1

invoke the append method on str_buf_1 with str_1 as the argument

load the constant string " is my name." (str_3)

invoke the append method on str_buf_1 with str_3 as the argument


...   下一页
 ·jdk1.4新特性:断言    »显示摘要«
    摘要: 摘要jdk1.4中引入的一个新特性之一就是断言(assert),为程序的调试提供了强有力的支持,以下的文档根据suntec内容及相关内容组成。 源代码: /*** simple examples of the use of the new assertion feature in jdk1.4** @author s.ritter 16/7/2001**/ public class ......
» 本期热门文章:

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