从大一的时候接触编程开始,就以微软的编译器来敲代码,当时使用的是visal c++,据说好像如今已经中止更新了吧。后来也就开始了微软的各类语言的开发,包括VB、C#,当初还没太多的对这些编程语言的感想,还以为全部的编程语言都是同样,无非基本数据类型、逻辑操做,面向对象的话则是封装、继承、多态,只是在语法上大同小异地表达这些东西,可大体给一个等于号给这些编程语言吧。android
在用asp.net开发了一段时间网站后,一次偶然机会,须要使用JAVA来开发,因此又来学习JAVA,研究JAVA的J2EE框架,当时只是用了spring和structs。记得最初还对本身信心满满的,当研究到spring和structs框架的时候,发现当时那个项目spring和structs的使用让页面处处理逻辑之间有了4次跳转。当时,就把咱们给蒙了。熟悉了asp.net开发的那种页面与处理逻辑一一对应方式,还真不理解这种模式。c++
如今又开始了android开发,对于配置方式来实现项目已经很熟练了。也开始理解了JAVA的这种模式,也慢慢地感悟了JAVA的设计理念。这时,我也开始来总结思考JAVA与其衍生的框架体系的特色,并以微软的开发框架来作对比说明。我总结以下:spring
1.JAVA语言自己只是一门轻量级的开发语言,为何这么说,由于与C#这些语言对比起来,C#的语言必须基于其庞大的的.net framework框架,并且这个.net 框架里面包含强大的功能组件,例如强悍的数据库操做的ADO组件。JAVA虽然也有JDK,然而它只立足于基本的功能,短小、精炼。数据库
2.大量强大的第三方开源类库。因为自己是轻量级的,所以它选择了把其余的功能交给第三方来开发,SUM公司采用开源项目做为橄榄枝,吸引大量的大神帮它开发产品。open带来个不单单是开源产品,并且创造了大量的以JAVA为开发语言的开源平台,从而产生大量JAVA衍生的框架、类库。我想,这也是JAVA发展成为当今最流行的语言的缘由。编程
3.组件式进行开发。JAVA的开发经常是经过配置来进行的,有时是为了让Data与View分离,有时是为了让框架与自定义组件进行组合,上面聊到的structs的配置这就为了知足这种需求。可能更多的缘由是后者,由于JAVA的开发经常伴随着导包,这些第三方包的使用就经常伴随着配置。这个包有点想组件的形式被放在项目中使用。没使用过微软语言开发的,可能以为这是正常的,然而使用的微软的语言开发的话,就好比开发网站来说,使用微软的asp.net,页面与后台逻辑的跳转是微软本身封装起来的,你不用管它,只管实现它的页面和页面对应的方法就好了,然而在J2EE开发中,须要使用structs来跳转。数据的持久化在.NET中可使用ADO中的DataTable、DataSet,功能强大,使用方便。在J2EE 中就得使用Hibernate。因此对比起来,JAVA体系的开发,须要把功能包一一地导入项目,在微软的开发系统里面,全部的功能都集成于其庞大的开发框架里面,也难怪微软的visial statio 一安装就是好几个G。框架