Java在一般人脑子里为什么总是慢的,是因为他是OO还是运行在PC ,或是因为有JVM的存在,是解释型语言?
文章从几个权威机构研究得出,Java慢是因为OO,
既然OO很慢,那么我们是否要放弃OO?
当然不能,OO的代码便于阅读,便于理解,我们还是要注意一些细节:
如:
x += 5;
is faster than
x = x + 5;
Do you believe that
z = (a > b) ? a : b;
is more efficient than
if (a > b) z = a; else z = b;
那么我们能做的就是优化Java:
办法1:类专门化,如果一个类可以做的很多事情,那么你就要学会简化它多做这样的几个类,比如Lnumber可以做数字方面的事情,你要细分它,变成LFloat, LDouble等等
2.充分利用inlining嵌入技术:
由于方法的调用需要消耗大量的资源,因此,Java编译器可以将一些方法调用转化为代码嵌入(Inlining),就是将一段代码对一个方法的调用转化为将该方法的代码在编译时嵌入到调用处,这样,由于减少了方法的调用,就可以大大提高代码的性能。
当将一个方法声明为final,static,private时,编译器就会自动的使用代码嵌入技术将该方法代码在编译时嵌入到调用处。
全文请看:
http://www.fawcette.com/javapro/2002_03/magazine/columns/javatecture/default_pf.asp
还有中国人写的一篇中文:
http://www.ccw.com.cn/htm/center/tech/02_6_24_5.asp