1.JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。那么,什么是jdk?它和sdk有什么区别?SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”;而jdk=java   sdk(如果使用微软的C#进行开发,那么就需要C# SDK了),JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。
  J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发
  J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发
  J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发
  J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本。对于初学者,都是从J2SE入手的。
  2. j2ee和j2se的区别
  j2ee是在j2se的基础上添加了一系列的企业级应用编程接口.j2ee包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!
  j2ee主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!支持分布式组件可以同时存在多个容器
  而j2se就是最基础的运行JAVA程序的工具包,包含了最基本的JAVA类库,例如java.lang.String就是基本的类库之一,j2se包用来开发桌面应用程序(即所谓的C/S结构)足够了,例如eclipse就是它开发的,相当于微软的C#;而j2ee其实就相当于微软的ASP.NET,是专门用于web开发的,该包包含了j2se包,另外还提供了一些与web开发相关的类库(说白了就是jsp和servlet接口,API),例如HttpServletRequest对象就是其类库中的一种,而j2se是开发桌面应用程序的,因此不需要用到这些HTTP对象(网络上将j2ee吹嘘成什么企业级开发,晕!不就是开发个网站(或者是所谓的B/S结构)吗,但人们楞是冠之以一个强悍的吓人的名头,当真是将好大一部分初学者给吓住了(包括我^-^)!);那么同理,也许手机应用程序比正常的桌面应用程序简单一点,因此不需要用到那么多类库,即所谓的JAVA服务(就是基本的类而已,楞是说成服务,那以后C语言也就叫C服务得了),因此所谓的j2me,其实就是从j2se中去掉一些类库,就成为所谓的微型移动程序的开发平台了。
  3、J2EE到底是什么?
  J2EE,是sun公司提出的一个标准,符合这个标准的产品叫“实现”;其中你下载的sun公司的j2ee开发包中就有一个这样的“实现”,而jboss,weblogic,websphere都是j2ee标准的一个“实现”。由于jboss,weblogic,websphere自身带有j2ee的api,所以可以不使用sun的j2ee实现。
  4、j2ee sdk和j2sdkee的区别
  可以把j2ee sdk和j2sdkee当成是一回事,官方叫法为 j2ee sdk。j2eesdk就是jdk,这个是开发ejb(enterprise java bean,企业版javabean——所谓企业javabean,说白了就是开发web项目时,在后台编写的java类——不知道能不能这样理解?哎!JAVA中的很多概念其实特简单,但它偏不用人们易于理解的语言来解释,非要带上企业的印记,将个JAVA搞的像传说中的爪哇岛一样神秘莫测!)必须要安装的。
  5、装过j2ee sdk还需要装j2se sdk吗?
  在sun的网站下载J2ee1.4时,有两种下载包,其中一种是j2ee1.4 sdk完整包(all in one),包含j2ee server,j2se, sample, api doc; j2ee 包含j2se 几乎所有东西——j2ee里有一个jdk ,它下面的lib和j2se下面的lib一样大(同版本的),但jre不一样大,因为j2ee比j2se多了好多,如java.servlet.* ,java.servlet.http.* 等。
j2ee 是让你用来开发 j2ee specification 的东西.如果是用于web 服务器,不装j2ee也行,只要装一个jre (连j2se都不用装),外加一个servlet引擎(如tomcat)就够了。
  看下面这个,一目了然:
  j2se == jdk == bin + demo + include + jre + lib + src.rar //SUN官方的jdk1.4.2
  j2ee == jdk + .... //这里的 jdk 和上面的jdk 文件不一样大,原因上文已说。
  另一种为单独的j2ee server,安装前需要先安装j2se sdk。
  不管哪个,安装完成后,都要设置java_home,j2ee_home,classpath环境变量,再运行j2ee server即可。

  为了方便开发者,Sun把Java区分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Micro Edition)和Java Card四种平台。J2SE是所有Java技术的基础,不管开发人员要开发什么平台的Java应用程序,都必须先从J2SE学起。J2EE技术着重于企业服务器端的应用。J2ME主要针对嵌入式系统,包括手机、PDA等。针对手机应用程序的开发,Sun还提供了免费的J2ME Wireless Toolkit。Java Card技术用来开发可以植入IC智能卡中的应用程序。

来源:(http://blog.sina.com.cn/s/blog_61c10bc90100eg47.html) - 【转载】jdk,j2ee,j2se,j2me的概念区别_嘣得儿_新浪博客