对于技术我不再想仅仅局限于能实现功能而已,一定要弄明白其真正内涵,这不?又遇到一个解释不清楚的概念。
SDK、JDK、JRE和JVM的含义到底是什么?
网上有很多朋友对此产生疑问,但遗憾的是确没有谁真正的回答对了,有些人只是敷衍了事争取了分,或许是高手们的确不愿意回答这么低级的问题,而有些则是的确搞不明白或描述不清楚。
这里谈谈我的理解,或许不正确,请达人们批评指正,也好给像我这样的入门级新手指引到正确的道路,非常感谢。
- SDK(Software Development Kit):指辅助开发某一类软件的相关文档、范例和工具的集合(比如新浪微博的SDK),是软件开发中的广义的概念。
- JDK(Java Development Kit):是Sun公司针对Java开发人员发布的SDK,是特指JAVA的。Java SDK最早叫Java Software Development Kit,1.2版本以后才改名为JDK,即Java Development Kit。
- JRE(Java Runtime Environment):也就是常说的JAVA平台,是JAVA的运行环境,所有的JAVA程序都要在JRE中才能运行。它是JDK安装包的一部分,一般和JAVA SDK有相应的版本对应。
-
JVM(Java Virtual Machine):JAVA虚拟机,简单来讲就是把JAVA代码变成字节码的工具,属于JRE概念的一部分,JVM就快平台的核心构件。
由以上可以理解为SDK(泛指)>JDK(特指)>JRE>JVM,但JDK>JRE不是概念上而是指安装包而已。
那么现在不难理解“Java EE 6 SDK Update 4 with JDK 7 Update 5”这样的描述了,JAVA的广义SDK是叫Java EE 6 SDK Update 4,其中包含了JDK 7 Update 5。“Java EE 6 SDK Update 4 with JDK 7 Update 5”包含了:JDK 7 Update 5;GlassFish Server Open Source Edition 3.1.2.2;Java EE 6 Code Samples;Java EE 6 API Documentation;Java EE 6 Tutorial;等。
再来看看J2SE、J2EE、J2ME和Java SE、Java EE、Java ME的区别
-
J2SE(Java 2 Standard Edition):标准版,主要用于桌面应用软件的编程;
-
J2EE(Java 2 Enterprise Edition):企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统;
- J2ME(Java 2 Micro Edtion):微型版,主要应用于嵌入是系统开发,如手机和PDA的编程;
自从Java 5后分别改名为Java SE、Java EE、Java ME,不再带版本号,因为都已经发展到版本6还叫2版本的名称已经不再适合了。