java - JDK = Java SE && JDK != Java EE?

标签 java

请确认以上说法?

当他们提到 JDK 时,我需要知道他们指的是什么。

最佳答案

Java Development Kit 是我们通常指的一组创建 Java 应用程序的工具,包括 Java Compiler(将您的 JAVA Source 类翻译成 .class 字节码文件)、Java Virtual机器(用于执行那些 .class 文件)、用于 ZIP 应用程序(或提取它们)的 JAR 工具等。

Java Standard Edition 通常是指构成大多数 Java 程序基础的核心类,例如 Collections API(List、Map、Set 等)、 java.lang 包、I/O 类、Threading API、RMI 包和类、i18n(国际化)类、JDBC API,当然还有用于创建桌面应用程序和小程序的 AWT 和 Swing 类。这些 API 是您可以“用 Java”编写的所有其他程序的基础,例如 IntelliJ IDEA IDE、Servlet 容器(如 Tomcat)、RDBMS(如 Apache Derby)或自定义独立客户端(如 SQuirreL)。这些类是作为 JDK 的一部分获得的(只需破解打开 JDK 文件夹下的 src.zip 文件,看看在那里找到了什么:))

Java EE 是一个包含子规范的规范,作为一个整体,定义了实现(例如 GlassFish 或 IBM 的 WebSphere)应提供的一组服务以符合规范。这些“实现”就是所谓的 Java EE 容器。当您听到人们说“GlassFish 是 Java EE 1.6 实现”时,他们的意思是 GlassFish(使用 Java Standard Edition 类编写的 Java 程序)提供了 Java EE 6 系列规范的所有功能定义。

Java EE 规范应该涵盖“企业”应用程序开发领域的特定需求,例如用于 HTTP 请求-响应处理的 Servlet 规范、用于事务管理和组件生命周期管理的 EJB 规范、 JMS 消息服务规范等。 Java EE 容器(WebLogic、WebSphere、Tomcat)以类的形式提供这些规范的实际实现。简而言之,这些容器为 Java EE API 提供了 JAR。这些 JAR 文件中的类使用 Java SE 核心类。我认为最后一句话将 Java SE 和 Java EE 联系起来。

总而言之,我想说 JDK 只是一组您下载并执行的程序,用于创建和执行“用 Java 编写的”程序。如果您有一个仅使用“核心类”并且不需要“企业服务”的 Java 程序,您可以在 JSE 之上执行您的 Java 程序。最后,如果您需要提供一些功能并且任何 Java EE 规范的实现都满足您的任何需求,比如您需要处理 HTTP 请求;您根据规范(在本例中为 Servlet)创建一个组件,并将其部署到您的 Java EE 容器中,例如 Tomcat。

希望对你有帮助

关于java - JDK = Java SE && JDK != Java EE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024143/

相关文章:

java - 当 "inLocale"设置为土耳其语 (JDK 1.6.0_29) 时可用的语言环境显示国家?

java - 在 .txt 文件内的特定位置读取和写入文本

Java Reactor : unhandled exception from map(), 但由 fromCallable() 处理

java - 是否可以在方法定义中使用普通的 BiFunction

java - Bigquery Java API 以 BigDecimal 形式返回计费层级

java - 使用包 exp4j 总是返回 UnknownFunctionExpression 和 UnparsableExpressionException

java - 在 Java-8 中自动将属性名称作为参数传递

java - Oracle Java SQL异常错误: ORA-0094

java - 为什么按键事件没有发送到 GWT 的 TextInputCell.onBrowserEvent() 方法?

java - 简单的 Java 游戏循环的 CPU 使用率非常高