J2EE,J2SE,J2ME的全称以及各自应用领域
从2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。
此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME ;下面我对Java EE、Jave SE、Java ME简单解释一下: 1.Java EE(Java Enterprice edition),企业级Java应用版本;主要针对大型企业,如金融、电信、物流、制作业巨无霸。
2.Java SE(Java standard edition),Java 标准版本,java 标准版本作为企业版和微型版的基础,也就是说你想学会java,首先开始学的就是Java SE;应用范围就不用说了吧。
3.Java Me(Java Micro Edition),Java 微型版,应用于手机、冰箱啊、电视、里面的小程序。
java和j2me是什么关系
Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本: Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。
比如:数据库连接、接口定义、输入/输出、网络编程 Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。
比如:呼机、智能卡、手机、PDA、机顶盒 Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。
比如:EJB、servlet、JSP、XML、事务控制
什么是J2EE和J2ME?它们是用来干什么的?
J2EE和JAVA有关系 一、准备篇 1 什么是J2EE?它和普通的Java有什么不同? 答:J2EE全称为Java2 Platform, Enterprise Edition。
“J2EE平台本质上是一个分布式的服务器应用程序设计环境——一个Java环境,它提供了: ·宿主应用的一个运行基础框架环境。
·一套用来创建应用的Java扩展API。
”(引自《J2EE服务器端高级编程》) 2 J2EE好学吗? 答:J2EE是很多技术的集合体,并且还在成长中。
你会遇到很多专有名词:比如(X)HTML,Servlet/JSP,JDBC,JMS,JNDI,EJB,XML,Web Service……。
尤其是XML和Web Service正在快速成长。
幸运的是,你不需要等到学会所有技术后再开始编程。
大体上J2EE可以分成3个主要应用:Servlet/JSP,EJB,XML/Web Service 和一些支撑技术例如JDBC和JNDI。
你可以一个一个的学。
3 J2EE有什么用? 答:用来建设大型的分布式企业级应用程序。
或者用更时髦的名词说就是“电子商务”应用程序。
这些企业可能大到拥有中心数据库服务器,Web服务器集群和遍布全国的办公终端,也可能小到只不过想做一个网站。
4 学J2EE有前途吗? 答:在这一市场目前只有一种技术可以和J2EE竞争,那就是Microsoft的.NET。
相对来说.NET要“新”一些而J2EE要“老”一些。
但是.NET只能用于Windows平台(Microsoft声称要开发C#在Linux上的虚拟机但是尚未兑现该诺言), 考虑到Linux的发展势头,你可以相信.NET不会一统天下。
5 据说J2EE的性能不如.NET好,是真的吗? 答:在Sun公司提供的样例程序Pet Store上,Microsoft声称不如相同的.NET程序好。
而Sun公司反驳说这一程序不能真正体现J2EE的性能,并且指责Microsoft在数据库上做了优化。
作者没有学习过.NET因而不能妄下断言。
无论如何,大型分布式程序中的性能瓶颈通常首先来自于错误的设计。
6 听你说了这么多,我想学着玩玩。
答:除非你想靠它当饭吃或者作为技术储备,否则请不要浪费你的时间。
Flash要好玩得多。
计算机游戏就更加好玩了。
7 学习J2EE该怎么开始? 答:首先,下载一个J2EE服务器。
其次,去下载J2EE的API。
第三,找一本好的参考书。
最后,找一个顺手的IDE。
J2EE服务器。
你可以用Sun的J2EE SDK(免费),或者Weblogic(性能最好,但是太大,而且作者不推荐盗版行为),或者JBoss(免费,就是文档太少),或者JRun(开发版免费,作者用这个)。
参考书作者感觉Wrox的《J2EE服务器端高级编程》不错,但是太老(作者手头的是2001年中文版)。
你还需要去下载一些最新的技术资料(当然肯定是英文的)。
IDE如果你的机器配置够好(内存至少512M以上,256M或以下请勿考虑),可以用IBM的WSAD,不然就继续用Eclipse或者其他。
你也可以经常去水木清华的Java版逛逛,但是在发贴前先看看精华区里有没有你要的答案。
8 我下了一个J2EE服务器但是不会配置。
答:请认真阅读随机指导文档,不同的服务器的配置都不一样,作者爱莫能助。
9 我发现你没有提到Tomcat。
答:Tomcat只是一个Web服务器,更准确地说主要只是一个Web Container。
如果你想要学习EJB的话,Tomcat无法满足你的需要。
二、 Servlet/JSP篇 10 什么是Servlet? 答:一个Servlet是一个Java类。
它处理Http(s)请求并作出响应,包括返回一个HTML页面或转交给其他URL处理。
Servlet必须运行在一个Web Container例如Tomcat中。
Servlet必须是javax.servlet.-push,客户端刷新技术。
30 我想让用户登录以后才能访问页面。
答:使用声明式安全措施。
你只需要在web.xml中定义安全角色(Role),并定义受保护的URL集合只能由特定Role访问。
大多数服务器支持基于数据库的用户映射,你只要在相应数据库中建立两张表并配置服务器就可以了。
注意J2EE SDK不支持基于数据库的用户映射。
细节请看参考书和服务器文档。
31 我想要能注册用户。
答:参看30。
在接受注册请求的Servlet中执行写入数据库操作即可。
32 怎么在JSP中访问数据库? 答:标准做法是使用DAO模式,定义一个Java bean来访问数据库并在JSP中使用。
然而,当你的数据库模式很简单时,你可以使用JSTL中的<sql:query>标签来快速访问。
33 什么是JSTL? 答:JSTL是Jsp Standard Tag Library的缩写。
这是一组通用标签并将成为JSP 2.0的一部分。
其中包含赋值<c:set>,分支<c:if>,循环<c:forEach>,查询数据库<sql:query>,更新数据库<sql:update> 等。
目前你需要像添加自定义标签库一样来添加JSTL,但是可以预计JSP 2.0会将JSTL作为组成部分。
标签库可以在下载。
注意JSTL需要在支持JSP1.2或更高版本的容器下运行。
帮助文件可以阅读sun的JSTL正式规范。
======================================================= j2me入门--什么是J2ME及J2ME基础知识 Java发展历史 相信熟悉Java 演进历史的人或多或少都听说过,Java 技术一开始并非就叫做 Java ,而是叫做OAK ,而且最早的时候就是为了嵌入式系统而设计的一项产品。
后来因为网际网路的发达,而OAK 的诸多特性刚好又适合用在网路上(例如可移植性、编译后程序码很小),因为商标已被注册的关系,因此 OAK 被改名成Java ,从此因缘际会地成了网路上的闪亮巨星,并随著时间越来越成熟,也慢慢地产生了许多非原本预期中的相关运用。
虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。
虽然从Java 1.0 发表之后,Java 就被广泛地使用在桌上型应用程序以及Applet 的开发上,但是,从Java 1.1 开始,Java又回到了它一开始的老路--也就是嵌入式系统方面的应用,在当时Sun Microsystems 发表了Embedded Java 与Personal Java(也有人简称为PJava)这两项规格。
其中Embedded Java 是为了资源十分有限,而且没有显示设备的嵌入式装置而设计; Personal Java 则是为了在能够与网际网路连线、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。
接著Java 的版本演进到Java 2 ,这时为了再明显区分各种Java 的应用,所以分割出了J2EE 、J2SE、以及 J2ME 三种版本。
这三种版本的各种特性我们已经在前面已经详细地描述,在此不再赘述。
不过请大家记住,由於 Java 2将Java 的应用区分成三大块,使得 Java 程序语言的发展不会再像Java 1.1时如树枝状般扩散出去,这么一来有助於大家对 Java 各种应用的澄清,而不会造成今后越发展下去越不可收拾的混乱局面。
额外向大家一提的是,后来Personal Java 发展到1.2 版的时候,也采用了一些Java 2 平台上与安全性有关的设计。
J2ME J2ME 在设计其规格的时候,遵循著「对於各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。
於是 J2ME 先将所有的嵌入式装置大体上区分为两种 :一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA 、手机);另外一种则是运算能力相对较佳、并请在电力供应上相对比较充足的嵌入式装置 (比方说冷气机、电冰箱、电视机上盒 ( box))。
因为这两种型态的嵌入式装置,所以Java 引入了一个叫做Configuration 的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置则规范为 Connected Device Configuration(CDC)规格。
也就是说, J2ME 先把所有的嵌入式装置利用Configuration 的概念区隔成两种抽象的型态。
其实在这里大家可以把Configuration 当作是J2ME 对於两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的 Java程序所能使用的类别函式库、这些规范之中所定义的类别函式库为 Java标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式库。
比方就CLDC 的规范来说,可以支援的核心类别函式库为java.lang.*、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedition.io.*。
区分出两种主要的Configuration 之后,J2ME 接著在定义出Profile的概念。
Profile 是架构在Configuration 之上的规格。
之所以有Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java 程序该如何开发以及它们应该具有哪些功能。
因此Profile 之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile 里头。
Profile 之中所定义的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库所建立。
虽然J2ME标准繁多,但只要把握住标准划分的原因就很容易掌握。
在这个技术飞速发展的领域,我们不能把眼光局限于标准的字面含义,而要灵活掌握,把握其精神。
比如,CLDC和CDC的定义中具体的最小内存需求仅仅是"最小的",随着硬件能力的飞速发展,很有可能一些界限会变得模糊。
PDA本来应该属于CLDC的范围,但是Compaq的iPaq上却实现了CDC。
以后的下一代PDA有64M内存并不意外,在其上实现CDC也是完全可能的。
但是,从功能的角度,应该还是CLDC以及PDA Profile更适合于PDA的条件。
到那时,具体的实现就要看厂商和开发者的选择了。
还需要注意的是,由于Profile是建于Configuration之上,作为对Configuration的扩展,因此Profile必须Configuration的支持。
有的文章在讲到MIDP的内存需求时,说MIDP需要最少256K,这是指MIDP本身。
而有的文章说MIDP需要最少768K,那时因为把作为基础的CLDC所需要的512K算进去了。
CLDC CLDC是针对少于512KB内存footprint的设备的配置。
CLDC采用的是KVM,它是高度优化的JVM方式,他针对的是16比特或32比特的微处理器,160到512 KB内存为基础的低端,网络连接,电池驱动的设备。
典型的内存要求是128KB做有来存储KVM和相关的库。
更多关于KVM的信息可以从Sun公司的KVM白页中得到。
就网络化而言,CLDC针对的是有限的和间歇性的无线连接设备,所有在J2ME CLDC之上运行的应用软件都应能在其他任何高端的Java VM上运行。
当然,这需要CLDC库的支持。
CLDC配置关注于I/O,网络化,安全问题,国际化问题和核心Java库等相关的领域。
与事件处理,用户和应用程序的互动,应用程序生存期管理等内容相关的领域是由Profile来处理的。
使用界面定义(对于特定的设备,如传呼机,移动电话和PDA)也在Profile层的范围之内,它建立在顶端之上,并使用J2ME配置。
Mobile Information Device Profile (MIDP)是一个J2ME profile,它定义了使用CLDC配置设备的用户界面相关的规范。
CLDC从J2SE获得绝大多数的类,但一些针对小内存footprint设备的新类并不是从J2SE APIs获得的。
关于类从J2SE 做继承和新CLDC类的具体信息,可参考CLDC规范1.0a版本的6.2和6.3中的内容。
Java语言规范中的一些例外是没有浮点支持,没有类实例的完成化支持和有限的错误处理能力。
在这里提到CLDC HotSpot应用也是具有相关性的,它相当于使用CLDC配置的设备的KVM中Java VM的替换。
根据Sun公司,CLDC HotSpot执行VM是一个高性能的JVM(32位,采用CLDC v1.0规范)。
他在相同的内存footprint上运行时提供比KVM高出一个数量级的更佳的性能。
CDC:完全的Java平台 CDC是应用在具有较大内存,特别是2MB以上的设备上的,CDC针对有限和间歇的无线连接设备,CDC与CVM和Foundation profile共同定义了完全的J2ME环境。
CVM是为用户和嵌入设备设计的完全功能性JVM,它支持所有的Java 2 v1.3 VM安全防护,JNI, JVMDI, RMI,弱引用功能和库。
本质上说,CVM具有所有一个驻留桌面系统的JVM所具有的功能。
CDC由J2SE中最小的Java数据包组成。
Foundation profile由用户设备所需要的保持类库和APIs所组成。
因此,如果你工作在一个以CDC为基础的J2ME环境下,你就需要更新你代码以使APIs更新换代。
CDC是CLDC的一个扩展集,所以在两种配置之间存在着向上的兼容性。
CDC和Foundation profile也提供了对使用PersonalJava实时规范开发的应用程序的完全兼容。
J2ME的平台无关性主要指的是设备的宿主操作系统平台。
由于Java平台建筑于虚拟机之上,只要不同的操作系统上的虚拟机满足同样的规范和标准,对于虚拟机以上的层次是平台无关的。
这使得针对某一Configuration或者Profile的应用可以运行于所有实现了这一Configuration或者Profile的操作系统平台。
举例来说,目前已经有网站开始收集基于MIDP的程序--MIDlet,提供下载和收费,各种支持MIDP的设备都可以使用,这包括数量巨大的智能手机和几乎所有的PDA(Palm OS和Pocket PC)。
相关站点 Java 2 Micro Edition /j2me/ JDC J2ME Tech Tips /developer/J2METechTips/ CLDC & KVM /products/cldc/
J2ME是一种计算机语言吗?如果不是,那是什么?JVM和JAVA是什么关系?
有多个组件组成的一门技术成为j2me
Java 程序是以边解释边执行的方式运行的,所有的Java 程序都会被编译成为二进制代码并运行在Java虚拟机上( J2EE、J2SE 中的Java 虚拟机简称为 JVM)。
在 J2ME 中有两类虚拟机:CVM (C Virtual Machine,C虚拟机)与 KVM (K Virtual Machine,K虚拟机)。
KVM 和 CVM均可被看作是一种 Java 虚拟机,是 JVM 的子集,在功能上都是 JVM 的缩减版。
这两类虚拟机的适用范围并不相同,简单地说,CVM 的功能比KVM 功能更为强大。