当前位置: 首页 >> 程序设计 >> Java >> JAVA中的细节-算法篇(1)
 

JAVA中的细节-算法篇(1)

作者:      来源:zz     发表时间:2007-07-24     浏览次数:      字号:    

众所周知,JAVA语言是当前比较流行也是应用比较广泛的编程语言,中国专门应用JAVA语言的公司也不在少数,做,博主我也是主攻JAVA语言,对其有一定的了解.看了题目也许有很多人不解:JAVA主流是抽象,如果更简单高效的解决问题.算法已经是前辈们写好的了,我们直接用就可以了,有这个必要讨论吗?也许很多人会有这种想法.一开始我也是,但任何一名了解JAVA语言的人都知道,JAVA与其他语言相比有一个重大缺陷-----解释速度慢(,计算机比较的无非就是计算速度,JAVA比C要慢20到50倍左右).在此我不想过多的讨论这个问题,但其确实这篇文章的切入点:一面完全面向对象语言,为什么还要研究算法?

    正因为速度是JAVA的致命弱点,虽然已经有JIT和SUN自己的hotspot,但速度上还是有差距(本地编译化破坏了JAVA的跨平台性,所以在此不讨论).如何解决这些问题呢?我们不能总是考JAVA不段推出新的JDK版本以提升速度,对于这个问题,做为写代码的程序员们,一样应该考虑-----那就是算法.一个精妙的算法可以省去微小的计算时间,如果很多精妙合理的算法集合在一起,一样可以提升JAVA的整体速度,因为JAVA的解释速度本来就不是很快,再加上我们编写上的时间复杂度考虑不周而减缓的速度,这是很让人头疼的.所以在次我想举两个例子来简单扼要的说明一下:

    首先是一个两个数值对调的例子,所有学过编程的人都一样很了解的一个方法.

int i=4;
int j=5;
int temp;
temp
=i;i=j;j=temp;

为了通用行我只写这么多,很典型的一个例子,重点在3,4行,开辟一个新的变量空间做为中间容器进行对调,结束后释放.可是大家有没有人想过如何缩短开销和运行时间呢?这是很有必要的,任何一个能缩短时间的细节我们都要考虑,这是非常值得的,下面我再来看另一个算法

 

int i=5;
int j=6;
i
^=j^=i^=j;


因为JAVA起初是为家用电器研究的,所以至尽还保留了对位的运算.这就给了我们提升速度的机会,比较一下,显然下面的算法比上面的节省时间和空间,位运算的速度是很快的,这使很多人愿意了解和使用它.

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •