什么是Java?
Java最初是由Sun Microsystems的James Gosling发明的一种编程语言。如今Oracle拥有Sun,因此也拥有Java。所以Java是甲骨文的商标。随着时间的推移,Java已不仅仅是一种语言,这是一个完整的平台,其中包含了大量标准API、开源代码、工具等,同时也拥有了无数的开发者团体。你可能还不清楚这意味着什么,但是当你开始学习更多的Java知识并开始使用它时,你将会对这些有着更深刻地认识。
人们经常说的Java,只是它全部概念中几个不同的小部分,因为Java不是简简单单的一门语言。这些概念对于初学者来说,很容易引起困惑,所以,我将会简短明了地解释这些概念,以便你能理解人们谈论的问题。下面这些是与Java相关的最常见的概念:
- Java语言
- Java字节码
- Java虚拟机(JVM)
- Java APIs
- Java运行环境(JRE)
- Java开发工具集(JDK)
- Java编码规范
- Java标准版(JSE)
- Java企业版(JEE)
- Java应用服务器
- Java微型版(JME)
- Java小程序(Java Applets)
- JavaFX
- Java开发者社区
在下面的部分,我将简要地解释这些Java概念。
Java语言
首先,Java是一门编程语言。这意味着存在一个Java语言规范,它明确地告诉了哪些元素是Java语言本身的一部分。换句话说,它告诉你Java语言能够做什么。
本教程关注的重点也是Java语言本身。
Java源代码存储在后缀名为 .Java 的文件中。然后利用Java编译器将这些文件编译成Java字节码,之后使用Java虚拟机(JVM)执行字节码。而Java编译器和JVM都是Java开发工具集的一部分。
Java字节码
Java字节码是由Java源码经过编译得到的,可以在Java虚拟机中执行。
Java字节码存储在后缀名为 .class 的二进制文件中。
Java虚拟机(JVM)
Java是一种解释性语言。这句话是什么意思?Java源代码被编译成Java字节码,然后由Java虚拟机执行此Java字节码。
Java虚拟机就像一台计算机。它可以执行Java字节码,类似于PC可以执行汇编指令一样。
Java虚拟机在几个不同的操作系统都有实现,比如Windows、Mac OS、Linux、IBM大型机、Solaris等等。因此,如果你的Java程序可以在Windows上的Java虚拟机上运行,那么它通常也可以在Mac OS或Linux上的Java虚拟机上运行。虽然有时某个系统中特定的问题会让你的应用程序表现不同,但大多数时候它们的表现都很类似。Sun公司把这称为“一次编写,处处运行”。
Java虚拟机本身就是一个程序。你通常可以在命令行接口(CLI),如bash或者是Windows中的命令行界面中,启动JVM并告诉它去执行什么Java代码。
Java APIs
Java语言允许你将Java语言编写的组件打包成api(应用程序接口),使得这些组件可以在其他人的Java应用程序中使用。Java就是和许多这样的组件捆绑在一起的。这些组件被称为标准的Java api,它们可以让你Java程序能够访问本地文件系统、网络和其他许多东西。
这些标准的Java api提供了许多基本的功能,如果没有它们,你将不得不自己编写实现。因此,这些api可以帮助你更快地开发应用程序。
所有Java应用程序都可以使用标准的Java api。标准的Java api与Java运行环境(JRE)捆绑在一起,或者与Java SDK捆绑在一起,当然Java SDK自身也包含一个JRE。
Java运行环境
Java运行环境(JRE)是Java虚拟机和带有标准Java api的Java标准版(JSE)的集合。JRE包含的内容可以执行Java应用程序,但不能编译Java源码。
Java开发工具集(Java SDK)
Java软件开发集(Java SDK)是JRE加上Java编译器和一些其他工具组成的。
如果需要开发Java程序,你就需要完整的Java SDK。因为单独的JRE是不能编译Java源代码,只有完整的Java SDK,才包含Java编译器,可以将 .java 源文件转换成 .class 的字节码文件。
另外,一些Java服务器可能需要JDK中的一些工具,例如将jsp(Java服务器页面)编译成Java字节码的编译器。在这种情况下,用JRE运行服务器是不够的。你必须使用完整的Java SDK,以便服务器可以使用Java SDK中包含的额外工具。
Java编码规范
Java编码规范是一组关于如何格式化Java代码,如何命名类、变量、文件等等的约定。你在大多数情况下都可以不遵循这些约定,但是大多数开发人员都遵循这些约定。
Java标准版(JSE)
Java已经演变成三种不同的api集,或者称为三种“应用场景”,就像有些人说的那样:
- Java标准版:适用于桌面和单独的服务器应用程序开发。
- Java企业版:用于开发和运行嵌入在Java服务器中的Java组件。
- Java微型版:用于在移动电话和嵌入式设备上开发和执行Java应用程序。
Java标准版包含独立桌面和命令行应用程序的基本Java api。Java标准版包含了JRE和JDK。
Java企业版(JEE)
Java企业版包含了许多额外的工具和api,用于在Java企业服务器中执行Java组件。以下是常见的企业版Java组件:
- Servlets
- Java Server Pages(JSP)
- Java Server Faces(JSF)
- Enterprise Java Beans(EJB)
- 两阶段事务提交
- Java消息队列服务API(JMS)
- ......
Java应用服务器
Java企业版只是一个规范。像IBM、Oracle这样的软件供应商都可以自由地实现这个规范。他们的确也是这样做的。他们实现的通常被称为Java应用服务器,因为这些服务器能够运行Java应用程序,同时也为Java应用程序提供大量标准化的服务。
Java微型版
Java微型版是一种适应小型嵌入式设备的Java版本,如pda、移动电话等。
当下(2015年)谷歌的Android平台是最流行的移动终端平台。Android并没有使用Java微型版。它使用谷歌自己的Java子集和许多Android特定的组件(api)。
Java小程序(Java Applets)
Java Applet是一种Java程序,它可以在web浏览器中下载后执行。因此,Java Applets可以成为web应用程序的一部分。
在Java刚开始发布的时候,Applets是Java的主要卖点。但在如今,Java Applets已经差不多消亡了(这其中不包括很所欢迎的游戏————我的世界)。HTML5和JavaScript已经成为最受欢迎的浏览器运行代码方式。
今天,大多数Java开发人员都在服务器端、Java应用服务器,或者像Vert这些其他平台上的服务器端做开发工作。或者是开发游戏框架。
JavaFX
JavaFX是一个RIA(富Internet应用程序)框架。它类似于Java Applets,但它具有更多的特性,并且具有完全不同的GUI API。JavaFX受到Flex(Flash)和Silverlight的启发。
Java开发者社区
Java开发者社区由所有参与讨论Java及其未来的Java开发人员组成。Java开发者社区也开发了许多开源api和产品。
下一篇: 安装Java SDK