j2ee,j2se,j2me等各种术语的区别和联系
以下均为个人理解,如果有大神发现有误请留言告之,谢谢!
这里讨论几个术语:j2ee,j2se,j2me,android,spring。
首先,企业级应用开发j2ee已经改名很久了,以后最好不要说j2ee这个词了。。 现在叫javaee。
①为啥叫j2se,不交j1se?java现在最新的版本也才1.8。
首先,从jdk5.0开始(就是java1.5),j2SE就改名为java SE了。自Java1.2之后Java版本统称为java2,据说是因为java1.2版本和java1.1版本相比是一个质的飞跃,基本算是一个新的语言的诞生了。没 研究过java1.1和java1.0版本,有兴趣的大神可以看一下(个人认为然并卵)。
②JAVA SE,JAVA ME,JAVA EE这三个有什么区别和联系?
他们可以认为是java语言的三个不同的版本,包含的包不同,量级不同,对应的使用平台也不同。
JAVAME是量级最小的版本,移动端版本,包含最少的包,适用于移动终端设备,比如机顶盒或者手机。
JAVASE是java的标准版本,pc端版本。包含比较全的包,适用于pc端开发和标准的应用开发。
JAVAEE是企业级版本,用于企业级应用服务开发。拥有最多的包。
大多数人不理解多在JAVAEE。JAVAEE到底是什么? 可以这么认为:javaee是sun公司提出的一个企业级的java开发的一个标准,所有符合这个标准的产品(包括sun官网给出的javaee实例代码)都叫做javaee的一个标准实现。可以看下这个网址,个人觉得很不错http://www.ibm.com/developerworks/cn/java/j2ee/
③JAVAEE和spring有什么区别和联系。
javaee是一套标准,一组技术规范;spring是一个产品,一个企业级应用的java开源框架;他们的目的是一样的,用于解决企业应用开发的复杂性,但是这两个概念不是一个纬度。一个是技术规范,是标准;一个是开源框架,是产品。如果spring中的解决方案采用javaee中的标准来的话,那么可以说spring是实现了javaee规范的一个产品。
举一个个人觉得比较恰当的例子,javaee就像是汽车,汽车协会规定4个轮子,能跑能载人的都叫汽车,而且汽车协会(sun公司)也做出了自己的一个汽车demo(就是sun官网的javaee源码),但是这个demo可能不是所有企业都满意,所以很多企业根据汽车协会的定义,造出自己的汽车(比如奔驰)。奔驰可以说是汽车的一个具体的产品,虽然不是sun公司出的。
spring,就像时风三轮车。他能跑,能载人,但是不是四轮的。有人觉得三轮车是汽车,但是按照汽车协会的标准(sun的JAVAEE标准),时风三轮车不算汽车(spring不算javaee)。javaee和spring的区别,就像汽车和时风三轮车的区别一样。但是他们的提出都是为了方便得载人出行(解决企业应用开发的复杂性)。
④安卓和javase
安卓是新手。。。 理解有误的话请谅解并狂喷!安卓是一个操作系统,以linux为基础的。JAVASE是一个java开发平台,他们两个还是有本质区别的。安卓是google的产品,javase是sun的产品。安卓分层次结构,应用层是用java写的。安卓跟java的关系个人觉得很暧昧。。 安装安卓sdk之后如果想在本地跑安卓代码必须安装jdk,但是将代码打包放到安卓手机里就不需要jdk了。。 谷歌和oracle的官司据说就是涉及到安卓的java的代码。。。这个现在实在是闹不太懂。。 等自己有一定安卓水平再回头看这个问题吧。。。