对以下帖子的回答
http://expert.csdn.net/Expert/topic/2974/2974612.xml?temp=.9041712你怎么知道不是你自己的问题?对于技术的效率,很可能是你自己的问题。据个简单的例子,将表单提交到一个servlet实现用户登录,servlet要读数据库,你怎么写?我知道很多人这样写:把所有东西都写在doPost方法里,这样的程序效率不低才怪。既然每次都要连接数据库做查询,为何不把连接数据库的代码放在init方法里?原因是这些人根本不清楚servlet的生命周期,所以就算知道有init方法,也不知道如何利用。曾经看到过一个网站,登录上去后显示的是别人的信息,为什么?很简单,因为写的人不懂多线程,没有做同步控制。servlet是使用多线程的,不完全了解多线程和同步控制怎么行,可偏偏有人就是不了解,这么基础的东西都不了解还J2EE,还Struts,浮躁。并且这些问题是普遍联系的,我上面说到的两个问题都属于servlet生命周期的问题,只有理解了servlet生命周期,才能写出正确并且有效率的应用。如果有人存在上面两个问题中的一个,他很可能也存在另一个。所以,关于Java技术的问题,我的观点是:以Sun Java认证的标准教育自己,衡量自己,没有达到认证水平不要说会用。不一定要去把认证考出来,但是一定要达到认证所要求的水平。比如SCJP,现在网上关于他的资料和题目很多,自学自测一下,能有很大提高。对于工具,Java确实没有MS那些技术的好,但是也有好的,你知道吗?你大概知道Eclipse,可是你知道WSAD吗?IBM的WebSphere Studio Application Developer,用过才知道,有多么方便。它是基于Eclipse的,但是装了很多老大哥IBM开发的插件,要多方便又多方便。配合Rational的另一些插件,更能进一步提高效率。所以,这方面我的观点是:技术,越开放越好,但是工具,越专有越好用。MS的工具确实人性化,方便,开发效率高,但是它的技术不是开放的,我不会选择。我选择开放的Java,配合好用的工具,很快乐,不能理解你的痛苦。