學習Java須要瞭解必要的Java歷史,不要以爲Java歷史對學習Java編程沒有任何幫助。在任什麼時候候,瞭解一門語言的歷史都能幫助更好地理解這門語言的精髓。之前在學習語文時,在分析一篇文章,一般會經過5W2H分析法來分析一篇文章的始末。這裏我也將經過5W2H中的4W1H來帶你們走近Java。(4W1H:Who,What,Why,When,How)java
引用《深刻理解Java虛擬機》一書中的一句話做爲開篇:程序員
世界上並無完美的程序,但咱們並不所以而沮喪,由於寫程序原本就是一個不斷追求完美的過程。編程
1、Who安全
Java之父:詹姆斯-高斯林。咱們習慣稱之爲高司令。1991年4月,由高司令領導的綠色計劃開始啓動,這個計劃的產品就是Java語言的前身:Oak(橡樹)。隨着1995年互聯網潮流的興起,Oak迅速找到了最適合本身發展的市場定位並蛻變成爲Java語言。服務器
主要公司:Sun(Stanford University Network,斯坦福大學網絡公司)。Oracle,2009年4月20號收購Sun公司。網絡
2、What編程語言
Java概述與其體系結構學習
Java不只僅是一門編程語言,仍是一個由一系列計算機軟件和規範造成的技術體系。這個技術體系提供了完整的用於軟件開發和跨平臺部署的支持環境,並普遍應用於嵌入式系統,移動終端,企業服務器、大型機等各類場合。Java體系結構主要包括:Java程序設計語言、支持各類硬件平臺的Java虛擬機、Class文件格式、Java API類庫、第三方Java類庫。測試
對於這幾個組成部分的名詞解釋:API,英文全稱爲Application Programming Interface,應用程序編程接口。能夠簡單理解爲Java裏寫好的一些代碼,可根據規則直接來使用以達到某種目的的方法。Class文件格式,即Java是一種編譯型語言,即它的語法不能直接被計算機識別,須要編譯後才能識別。源碼文件以.java結尾,而編譯後的文件以.class結尾。google
一般咱們把Java程序設計語言、Java虛擬機、Java API類庫這三部分統稱爲JDK(Java Development Kit)。從英文全稱中的development也能夠推測出它是用於開發的。JDK是用於支持Java程序開發的最小環境。在後面咱們講Java環境搭建時其實就是配置JDK的環境。另外Java 核心API與Java虛擬機這兩部分稱爲JRE(Java Runtime Environment),即JRE主要用於支持Java程序的運行。
Java語言平臺
J2SE(Java 2 Platform Standard Edition):是爲開發普通桌面和商務應用程序提供的,它是其餘二者的基礎。像咱們入門學習Java寫的一些程序都屬性J2SE
J2ME(Java 2 Platform Micro Edition):是爲開發電子消費產品和嵌入式設備
J2EE(Java 2 Platform Enterprise Edition):主要針對Web應用程序開發。後續將會進行知識點介紹
3、Why
Java語言的優勢
一次編寫,多處運行:這個優勢是全部Java程序員都知道的一個優勢。它擺脫了硬件平臺的束縛。
提供了一個相對安全的內存管理和訪問機制,這點對於學過C語言的人會比較有同感,在C語言裏,常常會有指針濫用的狀況,而在Java則避免了絕大部分的內存泄露和指針越界問題
有完善的類庫和無數第三方類庫來幫助實現各類各樣的功能
......
4、When
Java發展史
1991年4月,綠色計劃開啓;
1995年5月,Oak語言更名爲Java。也就是Java語言誕生的年份;
1996年1月,JDK1.0發佈;
JDK1.0一共發佈了1.1.0~1.1.8九個版本,中間經歷了1.2,1.3,1.4,1.5,1.6,1.7,1.8,到如今1.9已經發布。
其中比較有歷史意義的版本有:
JDK1.5,引入了自動裝箱、泛型、動態註解、可變參數等諸多新特性。JDK1.7,1.8如今比較經常使用的兩個版本,1.8引入了許多有用的新特性,好比lamda表達式等。
Java虛擬機發展
Java虛擬機的存在是使得Java實現一處編寫,多處運行的關鍵。這裏咱們只須要了解目前使用得最爲普遍的Java虛擬機是HotSpot VM。後面深刻學習Java時,再進行介紹。感興趣的能夠查閱《深刻理解Java虛擬機》一書,或自行查找相關資料。
5、How
如何學習Java
對於任何一門編程語言,學習的方法都是通用的,那就是寫代碼,只有寫代碼,測試出來的結果纔是最可靠,也是最容易記住的。若是你是小白,新入門一門語言,那麼在學習的時候,不要鑽牛角尖,先記住用法,學會以後再瞭解原理,先會用再去知道爲何要這樣用。若是你是已經學過一門語言的人,再接觸新語言時,大體瀏覽新語言的語法便可。注意多種語言之間的對比。固然無論什麼方法,最爲關鍵的仍是多寫,多百度,多google。