當前位置:才華齋>計算機>java語言>

java快速入門教程

java語言 閱讀(1.78W)

讓珊瑚遠離驚濤駭浪的侵蝕嗎?那無異是將它們的美麗葬送。以下是小編為大家搜尋整理了java快速入門教程,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

java快速入門教程

  第一章 Java概述

  §1.1Java語言出現的背景、影響及應用前景

  一、背景

最近一年多來,在Internet上出現的特別吸引人的事件就是Java語言和用 Java編寫的瀏覽器HotJava。

1991年,SUN MicroSystem公司的JameGosling、BillJoe等人,為在電 視、控制烤麵包箱等家用消費類電子產品上進行互動式操作而開發了一個名為Oak 的軟體(即一種橡樹的名字),但當時並沒有引起人們的注意,直到1994年下半 年,Internet的迅猛發展,環球資訊網WWW的快速增長,促進了Java語言研製的 進展,使得它逐漸成為Internet上受歡迎的開發與程式語言,一些著名的計算機 公司紛紛購買了Java語言的使用權,如MicroSoft、IBM、Netscape、Novell、 Apple、DEC、SGI等,因此,Java語言被美國的著名雜誌PCMagazine評為1995 年十大優秀科技產品,(計算機類就此一項入選),隨之大量出現了用Java編寫的 軟體產品,受到工業界的重視與好評,認為"Java是八十年代以來計算機界的一件 大事",微軟總裁比爾·蓋茨在悄悄地觀察了一段時間後,不無感慨地說:"Java是 長時間以來最卓越的程式設計語言",並確定微軟整個軟體開發的戰略從PC單機時 代向著以網路為中心的計算時代轉移,而購買Java則是他的重大戰略決策的實施部 署。

因此,Java的誕生必將對整個計算機產業發生深遠的影響,對傳統的計算模型 提出了新的挑戰。

SUNMicroSystem公司的總裁ScottMcNealy認為Java為Internet和WWW開 闢了一個嶄新的時代。

環球資訊網WWW的創始人Berners-Lee說:"計算機事業發展的下一個浪潮就 是Java,並且將很快會發生的"。

看來,使用Java已成大勢所趨!

MicroSoft和IBM兩大公司都計劃在Internet上銷售用Java編寫的軟體。 Apple、HP、IBM、MicroSoft、Novell、SGI、SCO、Tandem等公司均 計劃將Java併入各自開發的作業系統,而負責開發並推廣Java技術的SunSoft公 司(這是SUN下屬的一個子公司),將通過頒發許可證的辦法來允許各家公司把 Java虛擬機器和Java的Applets類庫嵌入他們開發的作業系統,這樣各類開發人員 就能更容易地選擇多種平臺來使用Java語言程式設計,不同的使用者也就可以脫離Web 瀏覽器來執行Java應用程式,這無疑是很受廣大使用者歡迎的,也為Java語言的應 用開拓了極為廣闊的前景。(當然,各類JavaOS之間的相容性必須得到重視,好在 JavaSoft已保證將監督這種兼

容性)。

另外,由JavaSoft推出的完全用Java編寫的Internet上新型瀏覽器HotJava, 比去年alpha版更為實用,不僅能編制動態的應用軟體,而且能編制完整的成套桌 面應用軟體,將來還會提供更多的能幫助編制動態應用軟體的模組,顯然,這也是 為Java的應用提供了有力的例證。

今年6月7日,由SUN公司和臺灣經濟事務部資訊發展局、臺灣資訊科技研 究所等單位牽頭,成立了一個"Java聯盟",參加的有22個在臺灣相當著名的計算 機公司,並在臺北建立一個"Java開發中心",在新竹建立一個"Java語言實驗室", 以掀起臺灣開發與應用Java語言的熱潮。

香港則在今年4月就舉行了全島的`Java杯比賽,在計算機界掀起了學習 Java的熱潮(尤其是在大學生們中,出現了一批Java迷)。

有人預言:Java將是網路上的"世界語",今後所有的用其他語言編寫的軟 件統統都要用Java語言來改寫。

  二、Java語言對軟體開發技術的影響

工業界不少人預言:"Java語言的出現,將會引起一場軟體革命",這是因為 傳統的軟體往往都是與具體的實現環境有關,換了一個環境就需要作一番改動,耗 時費力,而Java語言能在執行碼(二進位制碼)上相容,這樣以前所開發的軟體就 能執行在不同的機器上,只要所用的機器能提供Java語言直譯器即可。

Java語言將對未來軟體的開發產生影響,可從如下幾個方面考慮:

1軟體的需求分析:可將使用者的需求進行動態的、視覺化描述,以提供設計 者更加直觀的要求。而使用者的需求是各色各樣的,不受地區、行業、部門、愛好的 影響,都可以用Java語言描述清楚。

2軟體的開發方法:由於Java語言的面向目標的特性,所以完全可以用O-O 的技術與方法來開發,這是符合最新的軟體開發規範要求的。

3Java語言的動畫效果遠比GUI技術更加逼真,尤其是利用WWW提供的巨大 動畫資源空間,可以共享全世界的動態畫面的資源。

4軟體最終產品:用Java語言 開發的軟體可以具有視覺化、可聽化、可操 作化的效互動、動畫與動作",要它停就停,要它繼續就繼續,而這是在電影與電 視播放過程中難以做到的。

  5其它:使用Java語言對開發效益、開發價值都有比較明顯的影響。

  三、工業界對Java語言的評價

1996年5月29~31日,在美國舊金山召開了一個全世界Java語言開發者 大

會,(JavaOneDeveloperConfer-ence),出席會議的多達6500多人,來自工業 界的超過一半,有人評價說:"這是近年來計算機界最光輝的一次盛會",一些工 業界的老總們相當看好Java語言,認為它的使用將會引起一場軟體革命。從軟體 的設計風格、設計方法、設計目標到設計過程,都會產生徹底的變革,"甚至會改 變此星球的生活方式"。

在這次會上,Java的創始人之一JamesGosling說:"Java不僅僅只是 applets,它能做任何事情",Dta諮詢公司的高階軟體工程師RichKadel說:"Java 不僅僅是一種程式設計語言,更是現代化軟體再實現的基礎;Java還是未來新型 OS的核心;將會出現Java晶片;將構成各種應用軟體的開發平臺與實現環境,是 人們必不可少的開發工具,……"。

由於各界都看好它,因此,各大公司都紛紛表示支援Java,Intel、Xerox 公司聲言將把Java嵌入到他們的產品中去。就連華爾街金融界也在投入資金人力 用Java開發電子貿易、金融軟體。

所以有人說:"現在第三方的開發商都團結在Java大旗周圍了!",紛紛推出 用Java開發的各種軟體產品,以期儘快地佔領市場。

  四、Java語言的應用前景

Java語言有著廣泛的應用前景,大體上可以從以下幾個方面來考慮其應用:

1所有面向物件的應用開發,包括面向物件的事件描述、處理、綜合等;

2計算過程的視覺化、可操作化的軟體的開發;

3動態畫面的設計,包括圖形影象的呼叫;

4互動操作的設計(選擇互動、定向互動、控制流程等);

5Internet的系統管理功能模組的設計,包括Web頁面的動態設計、管理 和互動操作設計等;

6Intranet(企業內部網)上的軟體開發(直接面向企業內部使用者的軟體);

7與各類資料庫連線查詢的SQL語句實現;

8其它應用型別的程式。

§1.2Java的特點

Java是一個廣泛使用的網路程式語言,它是一種新的計算概念。

首先,作為一種程式設計語言,它簡單、面向物件、不依賴於機器的結構、 具有可移植性、魯棒性、安全性、並且提供了併發的機制、具有很高的效能。其 次,它最大限度地利用了網路,Java的小應用程式(applet)可在網路上傳輸而 不受CPU和環境

的限制。另外,Java還提供了豐富的類庫,使程式設計者可以很 方便地建立自己的系統。

下面我們分別從這三個方面來討論Java的特點,然後通過把Java與C, C++相比進一步指出它所具有的優點。

  一、Java語言

Java語言有下面一些特點:簡單、面向物件、分散式、解釋執行、魯棒、 安全、體系結構中立、可移植、高效能、多執行緒以及動態性。

1.簡單性

Java語言是一種面向物件的語言,它通過提供最基本的方法來完成指定的 任務,只需理解一些基本的概念,就可以用它編寫出適合於各種情況的應用程 序。Java略去了運算子過載、多重繼承等模糊的概念,並且通過實現自動垃圾 收集大大簡化了程式設計者的記憶體管理工作。另外,Java也適合於在小型機上運 行,它的基本直譯器及類的支援只有40KB左右,加上標準類庫和執行緒的支援也 只有215KB左右。庫和執行緒的支援也只有215KB左右。

2.面向物件

Java語言的設計集中於物件及其介面,它提供了簡單的類機制以及動態的 介面模型。物件中封裝了它的狀態變數以及相應的方法,實現了模組化和資訊 隱藏;而類則提供了一類物件的原型,並且通過繼承機制,子類可以使用父類 所提供的方法,實現了程式碼的複用。

3.分佈性

Java是面向網路的語言。通過它提供的類庫可以處理TCP/IP協議,使用者 可以通過URL地址在網路上很方便地訪問其它物件。

4.魯棒性

Java在編譯和執行程式時,都要對可能出現的問題進行檢查,以消除錯誤 的產生。它提供自動垃圾收集來進行記憶體管理,防止程式設計師在管理記憶體時容易 產生的錯誤。通過整合的面向物件的例外處理機制,在編譯時,Java提示出可能 出現但未被處理的例外,幫助程式設計師正確地進行選擇以防止系統的崩潰。另外, Java在編譯時還可捕獲型別宣告中的許多常見錯誤,防止動態執行時不匹配問題 的出現。

5.安全性

用於網路、分佈環境下的Java必須要防止病毒的入侵。Java不支援指標, 一切對記憶體的訪問都必須通過物件的例項變數來實現,這樣就防止程式設計師使用 "特洛伊"木馬等欺騙手段訪問物件的私有成員,同時也避免了指標操作中容易 產生的錯誤。

6.體系結構中立

Java直譯器生成與體系結構無關的位元組碼指令,只要安裝了Java執行時 系統,Java程式就可在任意的處理器上執行。這些位元組碼指令對應於Java虛擬 機中的表示,Java直譯器得到位元組碼後,對它進行轉換,使之能夠在不同的平 臺執行。

7.可移植性

與平臺無關的特性使Java程式可以方便地被移植到網路上的不同機器。 同時,Java的類庫中也實現了與不同平臺的介面,使這些類庫可以移植。另外, Java編譯器是由Java語言實現的,Java執行時系統由標準C實現,這使得Java 系統本身也具有可移植性。

8.解釋執行

Java直譯器直接對Java位元組碼進行解釋執行。位元組碼本身攜帶了許多 編譯時資訊,使得連線過程更加簡單。

9.高效能

和其它解釋執行的語言如BASIC、TCL不同,Java位元組碼的設計使之能 很容易地直接轉換成對應於特定CPU的機器碼,從而得到較高的效能。

10.多執行緒

多執行緒機制使應用程式能夠並行執行,而且同步機制保證了對共享資料 的正確操作。通過使用多執行緒,程式設計者可以分別用不同的執行緒完成特定 的行為,而不需要採用全域性的事件迴圈機制,這樣就很容易地實現網路上的實 時互動行為。

11.動態性

Java的設計使它適合於一個不斷髮展的環境。在類庫中可以自由地加入 新的方法和例項變數而不會影響使用者程式的執行。並且Java通過介面來支援 多重繼承,使之比嚴格的類繼承具有更靈活的方式和擴充套件性。

  二、JavaApplet

Java語言的特性使它可以最大限度地利用網路。Ap-plet是Java的小應 用程式,它是動態、安全、跨平臺的網路應用程式。JavaApplet嵌入HTML語 言,通過主頁釋出到Internet。網路使用者訪問伺服器的Applet時,這些Applet 從網路上進行傳輸,然後在支援Java的瀏覽器中執行。由於Java語言的安全機 制,使用者一旦載入Applet,就可以放心地來生成多媒體的使用者介面或完成複雜的 計算而不必擔心病毒的入侵。雖然Applet可以和影象、聲音、動畫等一樣從網 絡上下載,但它並不同於這些多媒體的檔案格式,它可以接收使用者的輸入,動態 地進行改變,而不僅僅是動畫的顯示和

聲音的播放。

  三、豐富的類庫

Java提供了大量的類以滿足網路化、多執行緒、面向物件系統的需要。

1.語言包提供的支援包括字串處理、多執行緒處理、例外處理、數學函 數處理等,可以用它簡單地實現Java程式的執行平臺。

2.實用程式包提供的支援包括雜湊表、堆疊、可變陣列、時間和日期等。

3.輸入輸出包用統一的"流"模型來實現所有格式的I/O,包括檔案系統、 網路、輸入

4.低階網路包用於實現Socket程式設計。

5.抽象圖形使用者介面包實現了不同平臺的計算機的圖形使用者介面部件, 包括視窗、選單、滾動條、對話方塊等,使得Java可以移植到不同平臺的機器。

6.網路包支援Internet的TCP/IP協議,提供了與In-ternet的介面。 它支援URL連線,WWW的即時訪問,並且簡化了使用者/伺服器模型的程式設計。

  四、Java和C、C++

對於變數宣告、引數傳遞、操作符、流控制等,Java使用了和C、C++ 相同的傳統,使得熟悉C、C++的程式設計師能很方便地進行程式設計。同時,Java為 了實現其簡單、魯棒、安全等特性,也摒棄了C和C++中許多不合理的內容。

1.全域性變數

Java程式中,不能在所有類之外定義全域性變數,只能通過在一個類中定 義公用、靜態的變數來實現一個全域性變數。例如:

ClassGlobalVar{ public static global_var; }

在類GlobalVar中定義變數global_var為public static,使得其它類 可以訪問和修改該變數。 Java對全域性變數進行了更好的封裝。而在C和C++中,依賴於不加封裝 的全域性變數常常造成系統的崩潰。

Java不支援C、C++中的goto語句,而是通過例外處理語句try,Catch, final等來代替C、C++中用goto來處理遇到錯誤時跳轉的情況,使程式更可讀 且更結構化。

3.指標

指標是C、C++中最靈活,也是最容易產生錯誤的資料型別。由指標所進行 的記憶體地

址操作常會造成不可預知的錯誤,同時通過指標對某個記憶體地址進行顯 式型別轉換後,可以訪問一個C++中的私有成員,從而破壞安全性,造成系統的 崩潰。而Java對指標進行完全的控制,程式設計師不能直接進行任何指標操作,例如 把整數轉化為指標,或者通過指標釋放某一記憶體地址等。同時,陣列作為類在Java 中實現,良好地解決了陣列訪問越界這一C、C++中不作檢查的錯誤。

4.記憶體管理

在C中,程式設計師通過庫函式malloc()和free()來分配和釋放記憶體,C++ 中則通過運算子new和delete來分配和釋放記憶體。再次釋放已釋放的記憶體塊或 未被分配的記憶體塊,會造成系統的崩潰;同樣,忘記釋放不再使用的記憶體塊也 會逐漸耗盡系統資源。而在Java中,所有的資料結構都是物件,通過運算子new 為它們分配記憶體堆。通過new得到物件的處理權,而實際分配給物件的記憶體可能 隨程式執行而改變,Java對此自動地進行管理並且進行垃圾收集,有效防止了由 於程式設計師的誤操作而導致的錯誤,並且更好地利用了系統資源。

5.資料型別的支援

在C、C++中,對於不同的平臺,編譯器對於簡單資料型別如int,float 等分別分配不同長度的位元組數,例如:int在IBMPC中為16位,在VAX-11中為 32位,這導致了程式碼的不可移植性,但在Java中,對於這些資料型別總是分 配固定長度的位數,如對int型,它總佔32位,這就保證了Java的平臺無關性。

6.型別轉換

在C、C++中,可以通過指標進行任意的型別轉換,常常帶來不安全性, 而Java中,執行時系統對物件的處理要進行型別相容性檢查,以防止不安全的 轉換。

7.標頭檔案

C、C++中用標頭檔案來宣告類的原型以及全域性變數、庫函式等,在大的系 統中,維護這些標頭檔案是很困難的。而Java不支援標頭檔案,類成員的型別和訪 問許可權都封裝在一個類中,執行時系統對訪問進行控制,防止對私有成員的操 作。同時,Java中用import語句來與其它類進行通訊,以便使用它們的方法。

8.結構和聯合

C、C++中的結構和聯合中所有成員均為公有,這就帶來了安全性問題。 Java中不包含結構和聯合,所有的內容都封裝在類中。

9.預處理

C、C++中用巨集定義來實現的程式碼給程式的可讀性帶來了困難。在Java 中,不支援巨集,它通過關鍵字final來宣告一個常量,以實現巨集定義中廣泛使 用的常量定義。