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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值