Java語言是一門優秀的編程語言,它的優點是與平臺無關,可以實現“一次編寫,到處運行”。Java是一門面向對象的計算機語言,它簡潔高效,具有高度的可移植性。下面介紹Java的由來及前景、優良傳統、技術體系及學習路線和組后的經驗之談。
1 Java前世今生
1.1 Java起源
Java源自Sun公司的一個叫Green的項目,其原先的目的是為家用電子消費產品開發一個分布式代碼系統,這樣就可以將通信和控制信息發給電冰箱、電視機、烤面包機等家用電器,對它們進行控制和信息交流。最初Green項目的工程師們準備采用C++,但C++比較復雜,最后經過裁剪、優化和創新,1990年,由Sun公司的James Gosling(詹姆斯·高斯林)領導的小組基于C++開發了一種與平臺無關的新語言Oak(Java的前身)。Oak的取名源于Gosling辦公室外有一棵枝繁葉茂的橡樹,這在硅谷是一種很常見的樹。
1995年1月,Oak被改名為Java,這是因為Oak是一家顯卡制造商已注冊的商標。Oak若想發展壯大,法律層面上的改名勢在必行。Java是印度尼西亞“爪哇(注:Java的音譯)”島的英文名稱,該島因盛產咖啡而聞名。這就是Java的官方商標是一杯濃郁的咖啡的原因。Sun隨后開發了HotJava瀏覽器,得到了Sun公司時任首席執行官Scott McNealy的支持,觸發了Java進軍Internet。
1.2 Java簡史
從Java的第一個版本誕生到現在已經有二十余年的時間,白駒過隙,滄海桑田,轉眼已過了四分之一個世紀,我們看到JDK的版本已經發展到了JDK 13。這二十多年里誕生過無數與Java相關的產品、技術與標準?,F在讓我們走入時間隧道,從孕育Java語言的時代開始,再來回顧一下Java的發展軌跡和歷史變遷。


1.3 Java前景展望
就目前而言,Java還在世界頭號編程語言行列。然而,Java最終將會減弱。但是無意中的好處,也是Java真正意外的光彩之處在于它為自己的替代品創造了一條非常暢通的道路,即使Java本身已經達到了無法再發展的程度。未來所有的語言都應該從中學習:要么創建一個可以重構的文化(像Python和Ruby做的那樣),要么就讓競爭者茁壯成長。
我們從Java發展情況來看,隨著Java每半年更新一次的節奏,新版本的Java中會出現越來越多其他語言里已有的優秀特性,相信博采眾長的Java,還能繼續保持現在的勃勃生機相當長時間。
2 Java優良傳統
在各種討論聲中,有一些人認為C++是一種設計糟糕的語言。 我認為理解C++和Java語言的選擇有助于了解更大的視角。
Java的設計者已經編寫了頗有影響力的“白皮書”,用來解釋設計的初衷以及完成的情況,并且發布了一個簡短的摘要。這個摘要用下面11個關鍵術語進行組織:
(1)簡單性?。?)面向對象?。?)網絡技能(4)健壯性?。?)安全性?。?)體系結構中立(7)可移植性(8)解釋型
(9)高性能 (10)多線程 (11)動態性
Java雖然更新迭代迅速,但Java一直保持著他優良的傳統,這也是Java為何一直受大家喜愛的原因所在。
3 Java技術體系
我們可以把Java程序設計語言、Java虛擬機、Java類庫這三部分統稱為JDK(Java Development Kit),JDK是用于支持Java程序開發的最小環境,在不產生歧義的地方常以JDK來代指整個Java技術體。可以把Java類庫API中的Java SE API子集和Java虛擬機這兩部分統稱為JRE(Java Runtime Environment),JRE是支持Java程序運行的標準環境。如下圖所示:


4 Java學習路線
Java學習的路線在整體上需遵循:初級階段-中級階段-高級階段。不建議一開始就“越級”學習,需知“欲速則不達”。在這三個階段各自內部的知識點,沒有必然的先后次序,可根據自己的實際情況“有的放矢”地學習。不管處于哪個學習階段,都要重視Java的實戰練習。


“羅馬不是一日建成的(Rome was not built in a day)”,編程高手也不是一日能成就的?!盾髯印駥W篇》亦有云:“騏驥一躍,不能十步;駑馬十駕,功在不舍。學習Java的途中沒有捷徑,需要進行不斷地理論學習、反復地實戰練習才能將代碼運用靈活,就好像練習武功一樣,只有重視基本功,并持之以恒,才能讓自己的動作收放自如,招式爐火純青。
5 Java學習經驗
Java是一門面向對象編程(Object-oriented programming,簡稱OOP)語言,在學習的過程中一定要多從面向對象的角度去考慮問題。在初級入門階段,要以實踐為主,多動手,增強自己對Java代碼的感性認識。感性認識積累多了,再配合書籍學好理論,這才能有高層次的理性認知。下面給出一些低級程序設計和編寫代碼的建議:
- 先讓它工作,然后再讓它變快。即使你確定一段代碼非常重要并且它是你系統中的主要瓶頸,也要先盡可能簡單的設計使系統首先運行。然后如果速度不夠快,請對其進行分析。
- 創建類時,給類起個清晰的名字,就算不需要注釋也能理解這個類。
- 優先選擇 接口 而不是 抽象類。
- 遵循編碼慣例。
- 請注意,相比于編寫代碼,代碼被閱讀的機會更多。清晰的設計可能產生易于理解的程序,但注釋,詳細解釋,測試和示例是非常寶貴的,它們可以幫助你和你的所有后繼者。如果不出意外,試圖從JDK文檔中找出有用信息的挫敗感應該可以說服你。
- 無論使用何種編碼風格,如果你的團隊(甚至更好是公司)對其進行標準化,它就確實會產生重大影響。這意味著,如果不符合這個標準,那么每個人都認為修復別人的編碼風格是公平的游戲。標準化的價值在于解析代碼可以花費較少的腦力,因此可以更專注于代碼的含義。
- 從設計的角度,尋找和分離那些因不變的事物而改變的事物。
- 不要通過子類擴展基本功能。如果一個接口元素對于類來說是必不可少的,則它應該在基類中,而不是在派生期間添加。如果要在繼承期間添加方法,請考慮重新設計。
- 使用繼承和覆蓋方法來表達行為的差異,而不是使用字段來表示狀態的變化。如果發現一個類使用了狀態變量,并且有一些方法是基于這些變量切換行為的,那么請重新設計它,以表示子類和覆蓋方法中的行為差異。一個極端的反例是繼承不同的類來表示顏色,而不是使用“顏色”字段。
- 使類盡可能原子化。 為每個類提供一個明確的目的,它為其他類提供一致的服務。如果你的類或系統設計變得過于復雜,請將復雜類分解為更簡單的類。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。