123 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| 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`
 | ||
| 
 | ||
| *   用户可以选择安装Java,OpenJDK或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 / Terminal(Mac 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上运行。该虚拟机依赖于机器,即它具有不同的Windows,Linux和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。
 | ||
| 
 |