今日发现一名为savage100的同学问我关于范型效率的问题的留言,抱着负责任的态度,想给那位仁兄做个回复,不成想未发现blogjava有回复功能,而且也未找到savage100的博客。唉!于“百忙之中”以此文作解,也算尽了我回复之责任。
简单的说,关于java范型的效率问题我并不是很清楚,其实我也不是很关心这个问题。如果一个项目真的对效率的要求都达到了语言特性之上,那这个项目就不应该使用效率先天不足的java。还记得java早期版本时的低效率吗?那时的程序员总是费劲心思整出些“奇技淫巧”,现在看看那时的一些代码建议都满有意思的。现在的java执行效率算是不错了,对于面向应用的程序来说,java语言本身不应该成为瓶颈。实际上,即便是性能卓越的C语言,在一些程序员手中也一样会效率底下。再看看jdk中大量的使用范型重写的代码,就可以明白java范型的执行效率应该是没问题的。而最大的问题是,我们如何合理的使用范型来解决类型安全问题。
如果是做web开发,范型更不是问题了。也许这时候我们要问的是,SSH中的反射、代理、字节码生成是不是我的程序慢的原因啊?是,也不是。相比于网络传输、数据库访问,框架本身的性能问题并不是很严重。虽然Hibernate相比JDBC要慢一些,但合理的运用数据库及Hibernate方面的最佳实践,Hibernate就不会成为项目的性能瓶颈。即便是相同的技术相同的问题,不同的程序员做出来的执行效率也是不一样的。说到底,人的因素是最重要的。
想再说些,但时间已晚,到此打住吧。