什么是Java?

时间:2020-01-09 10:36:56  来源:igfitidea点击:

Java最初是Sun Microsystems由James Gosling发明的一种编程语言。今天,Oracle拥有Sun,因此也拥有Java。因此,Java是Oracle的商标。随着时间的流逝,Java已经发展为不仅仅是一种语言。它是一个完整的平台,具有许多标准API,开源API,工具,拥有数百万开发人员的大型开发人员社区等。可能有点不清楚这一切意味着什么,但是当我们开始时会对它有更好的感觉了解有关Java的更多信息,并开始使用它。

当人们谈论Java时,他们经常提到整个概念的几个不同部分。那是因为Java不仅仅是一种编程语言。对于初学者而言,所有这些不同的"含义"可能会造成混淆,因此我将简要解释它们,以便我们了解人们在谈论什么。与Java相关的最常见的概念是:

  • Java语言
  • Java字节码
  • Java虚拟机(JVM)
  • Java API
  • Java运行时环境(JRE)
  • Java开发人员工具包(JDK)
  • Java代码约定
  • Java标准版(JSE)
  • Java企业版(JEE)
  • Java应用服务器
  • Java Micro Edition(JME)
  • Java小程序
  • JavaFX
  • Java开发人员社区

我将在以下各节中简要解释这些Java部分。

Java语言

首先,最重要的是Java是一种编程语言。这意味着存在一个Java语言规范,该规范明确说明了哪些元素是Java语言本身的一部分。换句话说,Java语言的函数。

本教程跟踪的重点是Java语言本身。

Java文件存储在带有.java后缀的文件中。然后,使用Java编译器将这些文件编译为Java字节代码,然后使用Java虚拟机(JVM)执行字节代码。 Java编译器和JVM是Java开发工具包的一部分。

Java字节码

用Java语言编写的Java程序被编译为Java字节码,可以由Java虚拟机执行。

Java字节码存储在二进制.class文件中。

Java虚拟机

Java是一种解释型语言。那是什么意思?好吧,Java语言被编译成Java字节码。然后,该Java字节码由Java虚拟机执行。

Java虚拟机就像一台计算机。它可以执行Java字节码,就像PC可以执行汇编程序指令一样。

Java虚拟机是为几种不同的操作系统实现的,例如Windows,Mac OS,Linux,IBM大型机,Solaris等。因此,如果Java程序可以在Windows的Java虚拟机上运行,那么它通常也可以在Java上运行Mac OS或者Linux上的虚拟机。有时存在特定于操作系统的问题,这些问题会使应用程序行为有所不同,但大多数情况下它们的行为非常相似。 Sun将其称为"编写一次,随处运行"。

Java虚拟机本身就是一个程序。我们启动JVM并告诉它要执行什么Java代码。这通常是通过命令行界面(CLI)完成的,例如bash或者Windows中的命令行界面。在命令行上,我们告诉JVM要执行什么Java类(字节码)。

Java API

使用Java语言,我们可以将用Java语言编写的组件打包到其他人可以在其Java应用程序中使用的API(应用程序编程接口)中。 Java捆绑了很多这样的组件。这些组件被称为标准Java API。这些API使Java程序能够访问本地文件系统,网络和许多其他内容。

标准的Java API提供了许多基本函数,否则我们将不得不自己进行编程。因此,API可更快地开发应用程序。

标准Java API可用于所有Java应用程序。标准Java API与Java运行时环境(JRE)或者Java SDK(其中还包括JRE)捆绑在一起。

Java运行时环境(JRE)

Java运行时环境(JRE)是Java虚拟机和Java Standard Edition(JSE)附带的标准Java API。 JRE包含足够的内容来执行Java应用程序,但不能对其进行编译。

Java软件开发套件(Java SDK)

Java软件开发套件(Java SDK)是JRE加上Java编译器,以及一组其他工具。

如果需要开发Java程序,则需要完整的Java SDK。那么,JRE还不够。只有完整的Java SDK包含Java编译器,该编译器会将.java源文件转换为字节码.class文件。

另外,某些Java服务器可能需要JDK中的某些工具,例如,将JSP(Java服务器页面)编译为Java字节码。在这种情况下,仅用JRE运行服务器是不够的。我们必须使用完整的Java SDK,以便服务器具有Java SDK中可用的其他工具。

Java代码约定

Java代码约定是一组有关如何格式化Java代码以及如何命名类,变量,文件等的约定。大多数时候,我们不必遵循这些约定,但是大多数开发人员都遵循其中的大多数约定。

Java标准版(JSE)

Java已经发展成三组不同的API,或者称为"配置文件"的一些集合,它们被称为:

  • 适用于台式机和独立服务器应用程序的Java Standard Edition。
  • Java Enterprise Edition,用于开发和执行运行在Java服务器中的Java组件。
  • Java Micro Edition,用于在手机和嵌入式设备上开发和执行Java应用程序。

Java Standard Edition包含用于独立桌面和命令行应用程序的基本Java API。 Java标准版既有JRE,又有JDK。

Java企业版(JEE)

Java Enterprise Edition包含许多额外的工具和API,用于在Java Enterprise Server中执行Java组件。企业Java组件的示例包括:

  • 小程序
  • Java服务器页面(JSP)
  • Java Server Faces(JSF)
  • 企业Java Bean(EJB)
  • 两阶段提交事务
  • Java消息服务消息队列API(JMS)
  • 等等。

请注意,Java Enterprise Edition已移至其自己的项目,该项目现在独立于核心Java SDK。这样做是为了使Java平台更小。

Java应用服务器

Java Enterprise Edition(Jakarta EE)只是一个规范。像IBM,Oracle等软件供应商可以自由实施此规范。他们有。它们的实现通常称为Java应用程序服务器,因为这些服务器能够运行Java应用程序,同时为这些Java应用程序提供许多标准化服务。

Java Micro版

Java Micro Edition是针对小型和嵌入式设备(如PDA,移动电话等)的Java版本。

今天(2014年),用于手机开发的最受欢迎的Java平台是Google的Android平台。顺便说一句,Android不使用Java Micro Edition。它使用自己的Java子集并结合了许多Android特定组件(API)。

Java小程序

Java Applet是在Web浏览器中下载并执行的Java程序。因此,Java Applets可以成为Web应用程序的一部分。

Java首次发布时,Applet是Java的主要卖点。但是这些天来,Java Applet已经几乎消失了(流行游戏Minecraft除外)。 HTML5和JavaScript已成为在浏览器中执行代码的最常用方法。此外,已从大多数浏览器中删除了能够执行Applet的浏览器中的Java插件,并且出于安全原因,这些浏览器不再允许该插件。

今天(2017年左右),大多数Java开发人员都在服务器端,Java应用程序服务器或者其他服务器端平台(例如Vert.x或者Play框架)上进行开发。不过,似乎似乎有一些JavaFX在客户端Java上酝酿着。请参阅下一节。

JavaFX

JavaFX是一个RIA(富Internet应用程序)框架。 JavaFX最初是Java Applet的替代品,但函数更多,GUI API却完全不同。 JavaFX受到Flex(Flash)和Silverlight for .NET(Microsoft)的启发。不过,Flash和Silverlight均已死亡。我们可以在我的JavaFX教程中阅读有关JavaFX的更多信息。

Java开发人员社区

Java开发人员社区由许多Java开发人员组成,他们参与了有关Java及其未来的辩论。 Java开发人员社区开发了许多开源API和产品,极大地扩展了围绕Java的生态系统。