Java/概述
非常感謝您開始閱讀這部書籍,在本文之中,我們先不討論如何編寫具體的程序,而是先對於Java做出一個簡要的概述。考慮到不同讀者對於計算機的了解程度可能完全不同,本文將分為兩個部分,分別適用於初學者及有經驗的用戶。
適用於初學者的內容
[編輯]程序是如何被創建的?
[編輯]在絕大多數情況下(也有少數例外),硬碟裏的數據以文件的形式被存儲,而程序,一般被存儲於可執行文件中,在Microsoft Windows作業系統中通常具有.exe的擴展名。眾所周知,執行文件常常可以處理其他形式的文件,例如,Microsoft Word可以用來打開.doc文檔,Microsoft Internet Explorer、Google Chrome、Mozila Firefox等瀏覽器程序可以用來打開.html、.htm等網頁文件。
一個問題很自然地產生了:究竟有沒有可以創建按照使用者的意願創造出新的程序的程序呢?答案是肯定的。軟件的開發者們使用的正是這一類被稱為編譯器的程序。簡單地說,編譯器讀取一類特殊的文本文件,這類文件包含了所謂的「源始碼」,用以說明這個程序究竟想做什麼。編譯器會對源始碼進行一系列處理,輸出我們計算機中的可執行程式。
不過,由於計算機處理能力的限制,源始碼中包含的內容並非人類語言,而是程式語言。學習程式語言將比學習機器語言(即計算機硬件能夠直接處理的指令)要容易的多,但依然不可能像人類語言那樣直白易懂,因此學習編程就需要學會一種程式語言。
此外,由於不同的設計者對於程式語言應有的架構有着不同的理解,人們創造出了很多不同的計算機語言,比如C、C++、C#、Visual Basic、PHP、JavaScript(注意,JavaScript和Java除了名字相近以外幾乎沒有關係!)等等,本書要介紹的Java就是其中的一種。
另外需要特別說明的是,有的程式語言寫出的源始碼需要被編譯器處理,最終編譯成執行程式,這些語言稱為編譯型語言,例如C、C++;有的不需要被編譯器處理,但卻需要被另外一個程序讀取並運行,那個用來讀取原始碼的程序叫做解釋器,這些語言成為解釋型語言,如JavaScript。Java比較特殊,其程序需要被編譯,但一般不能被編譯成可執行文件。
如果您對上一段的內容表示困惑,請不要擔心,您可以繼續讀下去。因為在HelloWorld一節中,本書會指引您構建一個最為簡單的Java程序,以使您對內容有更為深刻的了解。
哪裏有Java?
[編輯]Java是一門應用非常廣泛的語言,無論是在商用上,還是在個人使用上。不過,您的電腦上可能沒有安裝Java,也沒有任何使用Java的應用程式,Java並不是計算機上必須的組件。
您身邊最有可能大量使用的Java程序的設備很有可能是您的智能手機——如果它安裝了Android作業系統。Android作業系統中有相當大的一部分是基於Java的。事實上,如果您對Android開發有興趣,Java是您需要學習的技術之一。
如何繼續?
[編輯]在接下來的章節「搭建開發環境」中,您可以根據您的計算機使用的作業系統來根據指引安裝JDK(Java Development Kit,簡單來說這個軟件中包含編寫Java所必需的工具),然後編譯出Helloworld程序以熟悉編譯流程,然後再細緻學習Java語言。
如果您對計算機編程已較為深刻的了解
[編輯]您可以根據需求略讀部分章節
[編輯]相信如果您屬於這種情況,那麼考慮到各種程式語言在基本的運算操作符、流程控制語句上區別不大,您可以略讀本書中的基礎章節。不過,關於面向對象特性之後的章節您還是應該較為認真地閱讀,畢竟幾乎所有的語言都在這一方面都有一定程度的不同,並有一些獨特的特性。本書的下列章節會向您介紹Java的特性、同部分其他語言(主要是C++)的對比,以及Java的歷史和應用。
Java的特點
[編輯]Java是一種可以撰寫跨平台應用軟件的面向對象的程式語言。
Java 程式語言的風格十分接近C++語言。繼承了 C++ 語言面向對象技術的核心,Java捨棄了C++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用於回收不再被引用的對象所佔據的內存空間。在 Java SE 1.5 版本中Java又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數和自動裝/拆箱等語言特性。
- 簡單性
Java是一種簡單的程式語言。Java的設計者儘量把語言的結構規模縮小,通過提供最基本的方法來完成指定的任務。使用者只需要理解一些基本概念,就可以編寫出合適的應用程式。Java取消了許多語言中十分煩瑣和難以理解的內容,例如C++的指針、運算符的重載、類的多繼承等等,並增加了垃圾回收功能,大大簡單化了程序設計者的內存管理工作。Java在外觀上讓大多數程式設計師感到很熟悉,便於學習。同時Java編譯器也很小,便於各種機型上實現。
- 面向對象
Java 是一種面向對象的程式語言。這裏的對象是指應用程式的數據及其操作方法。Java的程序設計集中於對象及其接口,Java提供了簡單的類機制以及動態的接口模型, 實現了模塊化和信息封裝。Java類提供了一類對象的原型,並且通過繼承機制,實現了代碼的重用。
更多Java信息,參見維基百科上的Java。
Java語言的歷史
[編輯]想學好一門語言,首先是要了解它的歷史,那我們就來了解一下Java的歷史吧。
它是由Sun公司開發出來的。它的誕生主要得益於家用電器的晶片。開始時,它的開發者想用C++語言來開發電器的晶片,但是,由於晶片的種類各不相同,因此,程序要進行多次編譯。尤其是C++中的指針操作,一旦操作不慎,就會引起問題,程序可以出錯誤,但是家用電器不能出錯誤。為此,它的開發者將C++語言進行簡化,去掉指針操作,去掉運算符重載等,去掉C++中的多重繼承,得到了Java語言,將它變為一種解釋執行的語言,在每個晶片上裝上一個Java 語言虛擬機器。剛開始Java語言被稱之為Oak語言(橡樹語言)。
它的發展得益於WWW的發展。剛開始時,WWW的發展比較緩慢,每個網頁上面都是靜態的畫面,不能與用戶進行操作。即使是後來的CGI也只是在伺服器端進行運行,速度太慢,人們迫切需要能夠在瀏覽器端能與用戶進行交換,並且畫面能夠動起來,但是,WWW上的機器是各種各樣,作業系統也是千差萬別,後來人們想到了Oak語言,它是解釋型執行語言,只要每個機器上的瀏覽器能夠有它的虛擬機器,Oak語言就可以運行,因此Oak語言發展起來,後來改名為Java 語言。現在網絡上流行開發語言是Java語言。
Java語言現在逐漸成熟起來,它的類已經近千個,它的類無所不包,而且還可以通過第三方購買類,為Java語言的發展提供了良好的發展前景。同時它也是跨平台的語言,因此許多軟件開發商,硬件開發商也爭先恐後地想乘上Java語言的快車,都聲稱支持Java語言,它對微軟發起了有力的挑戰,而且Sun公司正努力開發Java晶片。