Java(請不要與 JavaScript 搞混)是一種設計爲與 Java 虛擬機 (JVM) 一塊兒使用的多用途編程語言。通常將安裝了相關工具能夠開發並運行 Java 程序的電腦系統稱爲 「Java 運行平臺」。使用這個標籤能夠(在StackOverflow上)查找有關 Java 編程語言或者 Java 平臺工具的問題。javascript
Java 是一種高性能、跨平臺、面向對象的編程語言和運行環境。Java 大部分語法起源於 C 和 C++,可是其對象模型比 C++ 簡單,而且減小了底層功能。Java 應用均被編譯爲字節碼(被稱爲 class 文件),能夠被 JVM(Java 虛擬機)執行,並獨立於不一樣的計算機體系。JVM 經過一個垃圾收集器(查看 garbage-collection)幫助管理內存,當對象再也不使用時能夠將其從內存中移除。Java 的系統類型是靜態、強類型、安全、聲明類型和顯式的。Java 支持反射、接口等與 C 和 C++ 類似的功能,例如 JNI(The Java Native Interface)。html
Java 被設計爲儘量減小與電腦系統的依賴關係,能夠容許應用開發者 「一處編寫,到處運行」(WORA):在一個平臺上執行的代碼不需從新編譯就能在其餘機器上運行。Java 最初由 James Gosling 在 Sun Mircosystems 公司(2009年4月20日已被 Oracle 併購)設計,最初是於 1995 年做爲 Sun Microsystems公司 Java 運行平臺的核心組件發行。java
安裝工具用於開發和運行 Java 的計算機系統被 Sun(現爲 Oracle)命名爲 Java 平臺。各類具備平臺特性的工具能夠幫助開發者更有效率地使用 Java 程序語言開發。linux
平臺包含兩個基本的軟件包:android
Java 運行環境(JRE):用於運行 Java 應用和程序;算法
Java 開發工具包(JDK):用於開發 Java 應用和程序。JDK 老是伴隨着一個 JRE。spring
在本節中,咱們將進一步探討這兩個軟件包做爲 Java 平臺的組成部分產生的做用。編程
背景api
做爲參考的大部分 Java 實現方式都是開源的(OpenJDK),由包括 Oracle、Apple、SAP 與 IBM 在內的大型企業提供支持。數組
極少的電腦能夠直接運行 Java 程序。所以,Java 環境一般要求安裝合適的軟件組件。在 Windows 系統上,通常能夠從 java.com 下載免費的 Java 運行環境(JRE)。在 Macintosh 系統上,當應用須要 Java 運行環境時,會在啓動時請求用戶下載 Java。在類 Linux 系統上,Java 通常經過包管理器安裝。
Windows 和 Mac 平臺的開發者常常須要額外的工具,使用工具所需的免費 Java 開發包(JDK)必須從 Oracle下載並手動安裝。
Java 會被編譯爲字節碼,而後由 JVM 經過編譯爲原生代碼進行解析。編譯技術爲即時編譯(JIT)。最初這被視爲下降性能的作法,可是隨着 JVM 和 JIT 的發展,擔心逐漸減小。在某些狀況下,例如當一箇舊版本的處理器須要向後兼容時,JVM 甚至快於原生代碼編譯速度。
注意:也有其餘供應商存在,然而大部分都有受權費。對於 linux 和其餘平臺,請查閱相關的操做系統文檔。
版本
主要的 Java 版本、代號和發佈時間:
JDK 1.0 (1996/01/23)
JDK 1.1 (1997/02/19)
J2SE 1.2 [Playground] (1998/12/08)
J2SE 1.3 [Kestrel] (2000/05/08)
J2SE 1.4 [Merlin] (2002/02/06)
J2SE 5.0 [Tiger] (2004/09/30)
Java SE 6 [Mustang] (2006/12/11)
Java SE 7 [Dolphin] (2011/07/28)
Java SE 8 [JSR 337] (2014/03/18)
Java SE 9 [TBD ] (未發佈)
最新的穩定版本:
Java Standard Edition 8 Update 51 (1.8.0_51) – (2015/07/14)
Java Standard Edition 7 Update 79 (1.7.0_79) – (2015/04/14)
更多的代號及發佈日期請訪問 J2SE Code Names。要查看 JDK 的版本發佈日誌請訪問 Wikipedia 的 Java 版本歷史文章。
Java SE 8 正在發佈而且可下載。
公共更新的結束日期(之前稱爲生命週期終止)爲:
J2SE 1.4 – 2008/10
J2SE 5.0 – 2009/10
Java SE 6 – 2013/02
Java SE 7 – 2015/04
Java SE 8 – 2017/09
新手幫助
你是 Java 初學者或者須要幫助使你的第一個 Java 程序運行?請參看 Oracle Java 教程開始部分。
詢問問題前,請使用右上角的搜索欄查找是否已被詢問(咱們有不少類似的問題),而且閱讀《如何提出一個好的問題》,學習怎樣吸引 Jon Skeet 回答你的問題。
命名規範
Java 程序須要堅持下列的命名規範以提升可讀性並下降意外錯誤出現的可能性。遵照這些命名規範,可使他人閱讀你的代碼和幫助你時更加輕鬆。
類型名(類、接口、枚舉等等)應以大寫字母開頭,隨後的每一個單詞首字母大寫。例如:String、
ThreadLocal
和 NullPointerException
。有時被稱爲 pascal case(帕斯卡命名法)。
方法名應使用 camelCased(駝峯式命名法),即它們應以小寫字母開頭,隨後的每一個單詞首字母大寫。例如:indexOf、printStackTrace、interrupt。
字段名應使用和方法名同樣的駝峯式命名法。
常量表達式命名(static final
不可變對象)應被寫爲 ALL_CAPS形式,使用下劃線分割每一個單詞。例如:YELLOW
、DO_NOTHING_ON_CLOSE
。這一樣適用於枚舉類(Enum
)的變量命名。然而,static final
修飾可變對象時應使用駝峯式命名。
Hello World:你的第一個程序
Hello World 程序代碼爲:
1
2
3
4
5
|
public
class
HelloWorld {
public
static
void
main(String[] args) {
System.out.println(
"Hello, World!"
);
}
}
|
編譯和調用 Hello world 程序:
1
2
|
javac -d . HelloWorld.java
java -
cp
. HelloWorld
|
Java 源代碼被編譯爲中間代碼(針對 Java 虛擬機 的字節碼指令),而後能夠被 java
命令執行。
更多信息:
開發Java經常使用的IDE
Spring Tool Suite(基於 Eclipse,包含用於 Spring 的插件)
Android Studio(基於 IntelliJ IDEA,主要用於 Android 項目開發)
初學者資源
Oracle 的 Java 教程 :在 Windows、Linux、Mac 上從零開始,覆蓋大部分標準庫。
Coding Bat (Java) :學習部分基礎以後,經過 Coding Bat 磨練和完善你的 Java 技術。
平常幫助資源
進階資源
免費 Java 編程圖書與資源
常見問題
人們常問的 Java 問題:
通常問題:
環境變量:
String
,StringBuilder
與 toString
:
equals
與 hashCode
:
Java Platform SE API:
泛型:
類與對象:
算法與轉換:
調試:
Thread
與多線程:
與操做系統交互:
(提交者們,請僅僅列出常常被詢問的問題。)
聊天室
原文連接: stackoverflow 翻譯: ImportNew.com - honoka
譯文連接: http://www.importnew.com/16689.html
[ 轉載請保留原文出處、譯者和譯文連接。]