# 关于 Java 技术

> 原文： [https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html](https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html)

Java 技术既是一种编程语言，也是一种平台。

## Java 编程语言

Java 编程语言是一种高级语言，可以通过以下所有流行语来表征：


*   简单
*   面向对象
*   分布式
*   多线程
*   动态
*   架构中性
*   便携式
*   高性能
*   鲁棒
*   安全


前面的每个流行语都在 [_Java 语言环境 _](http://www.oracle.com/technetwork/java/langenv-140151.html) 中进行了解释，这是由 James Gosling 和 Henry McGilton 编写的白皮书。

在 Java 编程语言中，所有源代码首先用以`.java`扩展名结尾的纯文本文件编写。然后，`javac`编译器将这些源文件编译为`.class`文件。 `.class`文件不包含处理器本机的代码;它包含 _ 字节码 _ - Java 虚拟机 &lt;sup&gt;[1](#FOOT)&lt;/sup&gt;（Java VM）的机器语言。然后，`java`启动器工具使用 Java 虚拟机实例运行您的应用程序。

![Figure showing MyProgram.java, compiler, MyProgram.class, Java VM, and My Program running on a computer.](img/33167633b277fd83e02ef5a731e00045.jpg)

软件开发过程概述。



由于 Java VM 可用于许多不同的操作系统，因此相同的`.class`文件能够在 Microsoft Windows，Solaris™操作系统（Solaris OS），Linux 或 Mac OS 上运行。某些虚拟机，例如 [Java SE HotSpot 概览](http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html)，在运行时执行其他步骤，以便为您的应用程序提供性能提升。这包括各种任务，例如查找性能瓶颈和重新编译（对本机代码）经常使用的代码段。

![Figure showing source code, compiler, and Java VM's for Win32, Solaris OS/Linux, and Mac OS](img/0bdba43143fe74ca908f316eb73f0ab7.jpg)

通过 Java VM，相同的应用程序能够在多个平台上运行。



## Java 平台

_ 平台 _ 是程序运行的硬件或软件环境。我们已经提到了一些最受欢迎的平台，如 Microsoft Windows，Linux，Solaris OS 和 Mac OS。大多数平台可以描述为操作系统和底层硬件的组合。 Java 平台与大多数其他平台的不同之处在于，它是一个纯软件平台，可以在其他基于硬件的平台上运行。

Java 平台有两个组件：

*   _Java 虚拟机 _
*   _Java 应用程序编程接口 _（API）

您已经了解了 Java 虚拟机;它是 Java 平台的基础，并移植到各种基于硬件的平台上。

API 是大量现成的软件组件，提供许多有用的功能。它被分为相关类和接口的库;这些库被称为 _ 包 _。下一节， [Java 技术可以做什么？](cando.html) 强调了 API 提供的一些功能。

![Figure showing MyProgram.java, API, Java Virtual Machine, and Hardware-Based Platform](img/487483258c8ef14e800a55d6ae726828.jpg)

API 和 Java 虚拟机将程序与底层硬件隔离开来。



作为独立于平台的环境，Java 平台可能比本机代码慢一点。但是，编译器和虚拟机技术的进步使性能接近本机代码的性能而不会威胁到可移植性。