freeCodeCamp/guide/chinese/java/index.md

123 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Java
localeTitle: Java
---
**什么是Java**
[Java](https://www.oracle.com/java/index.html)是[Sun Microsystems](https://en.wikipedia.org/wiki/Sun_Microsystems)在1995年开发的一种编程语言后来被[Oracle](http://www.oracle.com/index.html)收购。它现在是一个完整的平台包含许多标准API开源API工具庞大的开发人员社区用于构建大小公司最值得信赖的企业解决方案。 [Android](https://www.android.com/)应用程序开发完全由Java及其生态系统完成。要了解有关Java的更多信息请阅读[本文](https://java.com/en/download/faq/whatis_java.xml)和[此内容](http://tutorials.jenkov.com/java/what-is-java.html) 。
## 版
最新版本是[Java 11](http://www.oracle.com/technetwork/java/javase/overview) 它于2018年发布对以前的版本Java 10进行了[各种改进](https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html) 。但是出于所有意图和目的我们将在本维基中使用Java 8来完成所有教程。
Java也分为几个“版本”
* [SE](http://www.oracle.com/technetwork/java/javase/overview/index.html) - 标准版 - 适用于桌面和独立服务器应用程序
* [EE](http://www.oracle.com/technetwork/java/javaee/overview/index.html) - Enterprise Edition - 用于开发和执行嵌入Java服务器的Java组件
* [ME](http://www.oracle.com/technetwork/java/embedded/javame/overview/index.html) - Micro Edition - 用于在移动电话和嵌入式设备上开发和执行Java应用程序
## 安装JDK还是JRE
从[官方网站](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载最新的Java二进制文件。在这里您可能会遇到一个问题下载哪个JDK或JRE JRE代表Java Runtime Environment它是依赖于平台的Java虚拟机来运行Java代码JDK代表Java Development Kit它由大多数开发工具组成最重要的是编译器`javac` 以及JRE。因此对于普通用户而言JRE就足够了但由于我们将使用Java进行开发因此我们将下载JDK。
## 平台特定安装说明
### 视窗
* 下载相关的[.msi](https://en.wikipedia.org/wiki/Windows_Installer)文件x86 / i586用于32位x64用于64位
* 运行.msi文件。它是一个自解压的可执行文件它将在您的系统中安装Java
### Linux的
* 下载适用于您系统的相关[tar.gz](http://www.cyberciti.biz/faq/linux-unix-bsd-extract-targz-file/)文件并安装:
`bash $ tar zxvf jdk-8uversion-linux-x64.tar.gz`
* [基于RPM的Linux平台](https://en.wikipedia.org/wiki/List_of_Linux_distributions#RPM-based)下载相关的[.rpm](https://en.wikipedia.org/wiki/RPM_Package_Manager)文件并安装:
`bash $ rpm -ivh jdk-8uversion-linux-x64.rpm`
* 用户可以选择安装JavaOpenJDK或Oracle JDK的开源版本。虽然OpenJDK正在积极开发并与Oracle JDK同步但它们在[许可方面](http://openjdk.java.net/faq/)有所不同。然而很少有开发人员抱怨Open JDK的稳定性。 **Ubuntu**说明:
打开JDK安装
`bash sudo apt-get install openjdk-8-jdk`
Oracle JDK安装
`bash sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer`
### 苹果电脑
* 从Oracle下载中下载Mac OSX .dmg可执行文件
* 或者使用[Homebrew](http://brew.sh/) [安装](http://stackoverflow.com/a/28635465/2861269)
`bash brew tap caskroom/cask brew install brew-cask brew cask install java`
### 验证安装
通过打开命令提示符Windows/ Windows Powershell / TerminalMac OS和\* Unix并检查Java运行时和编译器的版本来验证Java是否已在系统中正确安装
```
$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
$ javac -version
javac 1.8.0_66
```
**提示** :如果您在`java`或`javac`或两者上都收到诸如“未找到命令”之类的错误请不要惊慌它只是您的系统PATH未正确设置。对于Windows请参阅[此StackOverflow答案](http://stackoverflow.com/questions/15796855/java-is-not-recognized-as-an-internal-or-external-command)或[本文](http://javaandme.com/)有关如何执行此操作。还有[Ubuntu](http://stackoverflow.com/questions/9612941/how-to-set-java-environment-path-in-ubuntu)和[Mac的](http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/)指南。如果你仍然想不通,不要担心,只要在我们的[Gitter房间](https://gitter.im/FreeCodeCamp/java)问我们!
## JVM
好了既然我们完成了安装那么我们首先要开始了解Java生态系统的细节。 Java是一种[解释和编译的](http://stackoverflow.com/questions/1326071/is-java-a-compiled-or-an-interpreted-programming-language)语言,即我们编写的代码被编译为字节码并被解释为运行。我们在.java文件中编写代码Java将它们编译为[字节码](https://en.wikipedia.org/wiki/Java_bytecode) ,这些[字节码](https://en.wikipedia.org/wiki/Java_bytecode)在Java虚拟机或JVM上运行以便执行。这些字节码通常具有.class扩展名。
Java是一种非常安全的语言因为它不会让您的程序直接在计算机上运行。相反您的程序在名为JVM的虚拟机上运行。此虚拟机公开了几个API用于您可以进行的低级机器交互但除此之外您无法明确地使用机器指令。这增加了巨大的安全性。
此外一旦编译了字节码它就可以在任何Java VM上运行。该虚拟机依赖于机器即它具有不同的WindowsLinux和Mac实现。但是由于这个VM你的程序可以保证在任何系统中运行。这种理念被称为[“一次编写,随处运行”](https://en.wikipedia.org/wiki/Write_once,_run_anywhere) 。
## 你好,世界!
我们来编写一个示例Hello World应用程序。打开所选的任何编辑器/ IDE并创建一个文件`HelloWorld.java` 。
```
public class HelloWorld {
public static void main(String[] args) {
// Prints "Hello, World" to the terminal window.
System.out.println("Hello, World");
}
}
```
**NB**请记住Java文件名应该**与公共类的名称完全相同**才能编译!
现在打开终端/命令提示符。将终端/命令提示符中的当前目录更改为文件所在的目录。并编译文件:
```
$ javac HelloWorld.java
```
现在使用`java`命令运行该文件!
```
$ java HelloWorld
Hello, World
```
恭喜您的第一个Java程序已成功运行。这里我们只是打印一个字符串将其传递给API `System.out.println` 。我们将介绍代码中的所有概念,但欢迎您[仔细查看](https://docs.oracle.com/javase/tutorial/getStarted/application/) !如果您有任何疑问或需要其他帮助,请随时在我们的[Gitter Chatroom](https://gitter.im/FreeCodeCamp/java)联系我们!
## 文档
Java有大量[文档记录](https://docs.oracle.com/javase/8/docs/) 因为它支持大量的API。如果您使用的是Eclipse或IntelliJ IDEA等任何主要IDE您会发现其中包含Java文档。
此外这里是Java编码的免费IDE列表
* [NetBeans](https://netbeans.org/)
* [日食](https://eclipse.org/)
* [IntelliJ IDEA](https://www.jetbrains.com/idea/features/)
* [Android Studio](https://developer.android.com/studio/index.html)
* [BlueJ的](https://www.bluej.org/)
* [jEdit的](http://www.jedit.org/)
* [Oracle JDeveloper](http://www.oracle.com/technetwork/developer-tools/jdev/overview/index-094652.html)
请注意: 若想安装 Netbeans IDE, 需要JDK, 您可以从[这里](https://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-3413139-esa.html)下载IDE和JDK。