Java是於1995年由Sun公司推出的一種跨平臺、面向對象的高級程序設計語言。Java最初的名字叫OAK。Java是一種經過解釋方式來執行的語言,其語法和C++相似。Java也是一門跨平臺的語言,用Java編寫的程序能夠在任何平臺上運行。實現了 "一次編寫,處處運行"。html
Java主要分爲三個版本:java
版本 | 發佈時間 | 特色 |
---|---|---|
JDK1.0 | 1996 | 代號OAK |
JDK1.1 | 1997 | 引入JDBC、java bean、反射、添加內部類支持等 |
JDK1.2 | 1998 | 引入集合框架等 |
JDK1.3 | 2000 | 引入Java Sound API、jar文件索引,進行了大量優化等 |
JDK1.4 | 2004-02 | 添加XML處理、Java打印服務、支持正則表達式等 |
JDK5.0 | 2004-09 | 重大改變:添加自動裝箱、自動拆箱、枚舉、泛型、註解等 |
JDK6.0 | 2006 | 支持腳本語言、繼承Web Services、插拔註解等 |
JDK7.0 | 2011 | 支持動態語言、引入新I/O文件系統等 |
JDK8.0 | 2014 | 接口改進、引入函數式接口、引入Lambda表達式等 |
JDK9.0 | 2017-09 | 模塊化、JShell等 |
JDK10.0 | 2018-03 | 局部變量類型推斷、刪除工具javah等 |
JDK11.0 | 2018-09 | 字符串、集合加強等 |
JDK12.0 | 2019-03 | Switch 表達式、默認CDS歸檔等 |
JDK13.0 | 2019-09 | Dynamic CDS Archives等 |
JDK、JRE、JVM關係圖:
程序員
Java 程序從源代碼到運行通常有以下3個步:
正則表達式
咱們須要格外注意的是 .class --> 機器碼 這一步。在這一步 JVM 類加載器首先加載字節碼文件,而後經過解釋器逐行解釋執行,這種方式的執行速度會相對比較慢。並且,有些方法和代碼塊是常常須要被調用的(也就是所謂的熱點代碼),因此後面引進了 JIT 編譯器,而JIT 屬於運行時編譯。當 JIT 編譯器完成第一次編譯後,其會將字節碼對應的機器碼保存下來,下次能夠直接使用。而咱們知道,機器碼的運行效率確定是高於 Java 解釋器的。這也解釋了咱們爲何常常會說 Java 是編譯與解釋共存的語言。編程
在 Java 中,JVM能夠理解的代碼就叫作字節碼(即擴展名爲 .class 的文件),它不面向任何特定的處理器,只面向虛擬機。Java 語言經過字節碼的方式,在必定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特色。因此 Java 程序運行時比較高效,並且,因爲字節碼並不針對一種特定的機器,所以,Java程序無須從新編譯即可在多種不一樣操做系統的計算機上運行。api
API(Application Programming Interface),應用程序編程接口。Java API 是一本程序員的字典,是JDK中提供給咱們使用的類的說明文檔。這些類將底層的代碼實現封裝了起來,咱們不須要關係這些類是如何實現的,只須要學習這些類如何使用便可。因此咱們能夠經過查詢API的方式,來學習Java提供的類,並得知如何使用它們。
主要使用步驟:安全
JDK13 API文檔多線程