这些不同的Java版本有哪些用途?


63

我即将开始Java 之旅,(我已经涉猎C ++),但是我对所有不同版本的Java感到非常困惑:

  • JavaSE
  • JavaEE
  • JavaFX
  • 等等

有人可以详细解释吗?

Answers:


107

Java适当的

Java Standard Edition是专为通用计算而设计的“普通”版本。与Java的所有其他变体一样,它是一种强大的,静态类型的,字节码编译的,面向对象的语言,在具有全自动垃圾回收的虚拟机上运行。它具有该语言的大多数功能。应用程序示例包括Minecraft或ArgoUML之类的应用程序。它可以作为独立的桌面应用程序运行,也可以作为Applet在网页中的嵌入式应用程序运行。

Java Enterprise Edition并不是另一种语言,而是接口规范,旨在生产在Application Server实现中运行的软件。这里的主要区别在于,它是为部署到符合企业版接口规范的应用服务器而设计的。Java SE可用于编写独立的服务器,但不包括旨在以Java EE的方式构建的标准化接口和规范。例如可以在Glassfish(Java EE参考实现),JBoss等上运行的应用程序。

Java Micro Edition是Java,旨在在移动设备上运行。应该指出的是,这是一样的东西的Android。Java ME被设计为比Java SE更好地处理移动硬件。我将Pantec Ease用作手机,它运行Java ME。

Java Card甚至更“小”,旨在用作诸如Smart ATM卡之类的真正低端设备。是的,其中有些实际上装有Java。

JavaFX是一个旨在构建Rich Internet Client GUI应用程序的框架。

JVM语言家族

首先,JVM。这是一个基于堆栈的虚拟机,运行的是由bytcode编译的,看起来很像汇编语言。优化可以使其在非常特殊的情况下运行非常快。

实际的Oracle Java Stuff就是这样,现在是人们在JVM上常用的东西。所有这些语言都具有Java互操作性,并且通常可以调用大多数或所有Java库。

Groovy是一种面向对象的,动态类型化的语言,具有更简洁的语法,被认为是Java的一种更轻松,更强大的替代品。它被设计为Java的一种扩展语言,几乎允许将Java文件拖放到Groovy程序中。它具有用于Web开发的通常与之关联的框架,称为Grails

是一个相当新的(2003)的混合面向对象/功能被设计为是高度可扩展的,因此得名语言。Twitter是Scala的重度用户。

Clojure的是最近(2007年)的功能Lisp的家庭语言。从一开始就专为繁重的并发编程而设计。我没有一个很好的软件示例,但是有很多公司正在使用它。

JythonJRuby分别是PythonRuby的Java字节码版本。

JVM还存在许多其他语言,例如Jaskell(JVM的Haskell),但它们往往是晦涩/学术性的实验。

相关资料

Android使用Java,但在基于Dalvik寄存器的计算机上运行。Dalvik目前是对其采用者Google 提起诉讼的对象。Android本质上是具有一组不同库的Java SE。

NetbeansEclipse是讨论最多的两个Java IDE。提出关于一个与另一个的问题将调用闭包,但我并不是说编程概念。

无关的东西

Javascript根本不是Java...。从那时起,它就被利用Java的普及性和混乱而烦人。

房间里的犀牛

Rhino是Javascript解释器,可将Javascript代码转换为Java代码,然后可以在某个地方运行。它本身不是一种独立的语言,但像其他任何语言一样,都有其自己的怪癖。Rhino由Mozilla开发,可以替代基于C的SpiderMonkey解释器。Rhino通常用于将Javascript嵌入Java程序中。

由Oracle为JDK 8开发的Nashorn(可能具有德国的效率水平)似乎是Java中嵌入式Javascript的新标准。这意味着Rhino不再用于Java的主要实现。目前对于Rhino项目意味着什么尚不清楚。


1
非常感谢!那就是我一直在寻找的东西:)还有一个问题:J2SE,J2EE等。这些只是SE,EE等的较新版本?
Patryk

8
是的,J2EE和J2SE分别是Java Enterprise Edition的两个标准版本。但是,不再遵循此命名方案。当前版本称为Java SE 6(或5/7)和Java EE 5(或6)。
BenR 2011年

1
有用于智能卡的Java吗?头脑陷入困境。
梅根·沃克

1
一个解决所有问题的答案!
用户

1
从JDK8开始,Rhino已过时(已删除?)。Nashorn是新的Rhino。
Silviu Burcea 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.