




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、11第1章 Java開發前奏第1章 Java開發前奏Java是一種簡單易用、完全面向對象、有平臺無關性、安全可靠的、主要面向Internet的開發工具。Java自從1995年正式問世以來,它的快速發展已經讓整個Web世界發生了翻天覆地的變化。隨著Java Servlet的推出,Java在電子商務方面開始嶄露頭角,最新的Java Server Page(JSP)技術的推出,更是讓Java成為基于Web應用程序的首選開發工具。Java是第一套允許使用者將應用程序通過Internet從遠端服務器傳輸到本地機上并執行的一種語言;是一種應用程序提供者不需要知道使用者的計算機硬件與軟件環境的語言。比爾
2、183;蓋茨曾經說過:“Java是最卓越的程序設計語言”。 Java自問世以來,技術和應用發展非常快,在計算機、移動電話、家用電器等領域中無一沒有Java技術的存在。在Internet上,幾乎每個網頁都包含Java程序或代碼。由于Java的廣泛應用,使它受到了史無前例的關注,Java是一種Internet編程語言,Java還曾是網絡動畫技術的代名詞,Java虛擬機更是讓人耳目一新,Java簡單易學、跨平臺而又不失強大功能。相比其他語言,Java技術平臺具有鮮明的優越性。從最初建造Java平臺開始,就考慮了安全性的問題,即其安全性是建立在Java平臺的內核中的。其他的語言只是在軟件開發時才由用戶
3、自行處理其安全問題,難免會有安全漏洞。其次,對于程序員來說,Java語言比以往其他的任何一門語言都好用,原因在于:Java有自動回收垃圾的功能,Java增加了對象和變量的強制類型檢查,Java還取消了指針。目前,Java技術的架構包括以下三個方面:q J2EE(Java 2 Platform Enterprise Edition ) 企業版,是以企業為環境而開發應用程序的解決方案。q J2SE(Java 2 Platform Stand Edition) 標準版,是桌面開發和低端商務應用的解決方案。q J
4、2ME(Java 2 Platform Micro Edition ) 小型版,是致力于消費產品和嵌入式設備的最佳解決方案。J2EE目前已經成為開發商創建電子商務應用的事實標準。J2SE是Java 2平臺的標準版,它適用于桌面系統,提供CORBA標準的ORB技術,結合Java的RMI支持分布式互操作環境。J2ME提供了HTTP高級Internet協議,使移動電話能以Client/Server方式直接訪問Internet的全部信息,不同的Client訪問不同的文件,此外還能訪問本地存儲區,提供最高效率的無線交流。Java技術又有以下廣泛
5、的內涵:q 首先,它是一門編程語言,Java能夠創建所有其他傳統語言能編寫的應用程序,Java能夠編寫獨立的應用程序,運行在裝有Java虛擬機的操作系統上。Java編寫的程序經常用在WWW環境中(比如applet,servlet等),Applet在瀏覽器中執行不需要操作系統JVM的支持。q 其次,Java還是一個開發環境,Java技術包含一系列的工具:編譯器、解釋器、文檔生成工具、打包工具等。另外由Java 2 SDK 提供的JRE(Java Runtime Envioument)還包括了一個完整的Java類集合,比如基本語言類、GUI控件類等。q 最后,Java也是一個運行環境,我們可以從S
6、UN公司提供的Java 2 SDK中來搭建運行環境,而這一切都是免費的。時至今日,Java仍然一步步地朝著遠大的夢想而邁進,顯而易見的成果便是在國際互聯網中的應用,如今常見的瀏覽器也都全面支持Java Applet以及衍生出來的JavaScript語言等,而市面上可見的操作系統,也利用Java的跨平臺特性來開發,包括Windows系列、各類Unix和Linux、Mac等操作系統,都可以看到Java的蹤跡。這一切都充分說明了Java在計算機語言大家庭中的地位。Java對Internet編程的影響就如同C語言對系統編程的影響一樣。1.1 Java虛擬機及Java的跨平臺原理Java虛擬機(JVM)
7、是可運行Java字節碼的假想計算機,Java的跨平臺性是相對于其他編程語言而言的,我們在這里就用C語言的編程與執行過程來同Java的編程與執行過程進行對比說明,如圖1.1所示。圖 1.1同C語言編程一樣,我們首先也要編寫Java源程序,然后由Java編譯程序將Java源程序編譯為JVM可執行的代碼,即Java字節碼。Java源程序編譯后生成的字節碼文件就相當于C源程序編譯后的Windows上的exe可執行文件,JVM虛擬機的作用類似Windows操作系統。在Windows上運行的是exe文件,在JVM上運行的是Java字節碼文件,也就是擴展名為.class的文件。Windows執行exe可執行
8、文件的過程,就是從exe文件中取出一條條的計算機指令,交給CPU去解釋執行。JVM執行Java字節碼文件的過程,也是JVM虛擬機從Java字節碼文件中取出一條條的字節碼指令交給“CPU”去執行。硬件與軟件是可以相互轉化的,我們可以用視霸卡硬件解碼VCD數據,也可以用超級解霸軟件解碼VCD數據。執行Java字節碼的“CPU”可以是硬件,也可以是某個系統上運行的一個軟件,這個軟件稱為Java字節碼解釋程序(也就是Java虛擬機)。可見,只要實現了特定平臺下的解釋器程序,Java字節碼就能通過解釋器程序在該平臺下運行,這是Java跨平臺的根本。當前,并不是在所有的平臺下都有相應的Java解釋器程序,
9、這也是Java并不是在所有的平臺下都能運行的原因,它只能在已實現了Java解釋器程序的平臺下運行。順便說一下:Java兼顧解釋性與編譯性語言的特點,Java源文件轉換成.class字節碼文件的過程是編譯型的,.class在操作系統上運行的過程則是解釋型的,Java虛擬機充當了解釋器的作用。關于解釋型和編譯型的區別就不在這里詳細敘述了,不能理解的讀者可以自己去查閱相關資料,這并不影響我們學習Java的效果。1.2 Java開發環境的搭建SUN公司提供了自己的一套Java開發環境,通常稱之為JDK(Java Development Kit)。SUN 公司提供了多種操作系統下的JDK,隨著時間的推移
10、和技術的進步,JDK的版本也在不斷地升級,如JDK 1.2、JDK 1.3、JDK 1.4。各種操作系統下的JDK的各種版本在使用上基本相似,讀者可以根據自己的使用環境,從SUN公司的網站上下載相應的JDK版本,一般情況下是越新越好,本書的講解都是基于Windows平臺下的JDK1.4。Windows下的JDK安裝過程非常簡單,這里就不再多說,這個工具包中的內容都放在JDK安裝目錄下(下面的講解都假設我們的安裝目錄為c:j2sdk1.4.0),其中的bin子目錄中包含了所有相關的可執行文件,如圖1.2所示。下面是bin目錄中的常用命令的簡要介紹(讀者暫且不要關心JDK下的其他目錄,在以后的章節
11、中,我們會逐步涉及,到時候理解起來也要比現在容易得多)。javac.exe是Java源文件的編譯工具,Java源文件的擴展名為.java,如Test.java,Java源文件被編譯后的Java字節碼文件的擴展名為.class,如Test.class。java.exe是Java字節碼解釋程序,負責解釋執行Java字節碼文件,就是一個JVM。在命令行窗口下,執行Java命令,如果屏幕上能夠打印出關于這個命令的用法介紹,如圖1.3所示。圖 1.2圖 1.3這時你的JDK基本上就可以使用了。也許你會碰到以下兩種錯誤:第一種錯誤,說Java不是一個可運行的程序,如圖1.4所示。圖 1.4第二種可能碰到的
12、錯誤是,當我們執行Java命令時,屏幕上不是打出關于這個命令的用法介紹,而是類似圖1.5所示的錯誤信息。圖 1.5我們通過下面有關知識的講解,來分析和解決這兩種錯誤。1.2.1 環境變量的介紹太多的“現代人”已不熟悉DOS了,根本就不明白系統環境變量和path環境變量的作用。通俗地說,系統環境變量就是在操作系統中定義的變量,可供操作系統上的所有應用程序使用。 1.2.2 如何查看系統環境變量以Windows 2000為例(由于Windows 2000具有眾多的新特性,這些特性在Java的開發過程中,能為我們提供許多方便快捷的功能,所以在這里建議讀者使用Windows 2000來做系統平臺)。首
13、先右鍵單擊桌面上的“我的電腦”,從下拉菜單中選擇“屬性”,在出現的屬性面板中選擇“高級”標簽,如圖1.6所示。然后單擊“環境變量”按鈕,打開環境變量面板,在這里可以看到上下兩個窗口,上面窗口名為“某用戶的環境變量”(在這里是Administrator即管理員的用戶變量),下面窗口名為“系統變量”,如圖1.7所示。圖 1.6圖 1.7可以在其中任意一個窗口里進行設置,區別在于上面窗口的設置用于個人環境變量,只有以該用戶身份登錄系統時才有效,而下面窗口中的設置則對所有用戶都有效。我們也可以啟動一個命令行窗口(單擊“開始”菜單,在“運行”中輸入cmd,然后按下Enter鍵即可。或者單擊“開始”菜單,
14、在“程序”中選擇“附件”,然后運行“命令提示符”,這兩種啟動方式的效果是一樣的),在這個命令行窗口中執行set命令,如圖1.8所示。圖 1.8如圖1.8所示,在命令行窗口中設置的path變量的值是圖1.7中的用戶變量和系統變量窗口中的path變量值的總和。也就是說,用set命令看到的環境變量值是Windows環境變量窗口中用戶環境變量和系統環境變量值的總和。作者在教學過程中,有時會看到另外一種情況,即命令行窗口中用set命令看到的環境變量的值,不是先前Windows窗口中如圖1.7所示的用戶變量和系統變量值的總和,而是只有用戶變量窗口中的值。至于為什么會有這種情況,只要不影響我們的使用,就不必
15、再去管它了。實際上,真正起作用的就是在命令行窗口中運行set命令所看到的所有變量和值,所以建議讀者每次配置完成后,用set命令查看一下。就能發現,用戶環境變量修改之后,需要用戶重新登錄才會生效,相信聰明的讀者應該能體會到其中的道理,也知道如何解決環境變量所引起的問題了。事實上,有經驗的程序員在遇到環境變量的問題時,都是通過這樣的途徑和手段解決問題的。我們接著就可以進行系統環境變量的配置了。1.2.3 如何設置系統環境變量還是以path環境變量為例進行講解,path環境變量的作用是設置供操作系統去尋找和執行應用程序的路徑,也就是說,如果操作系統在當前目錄下沒有找到我們想要執行的程序和命令時,操作
16、系統就會按照path環境變量指定的目錄依次去查找,以最先找到的為準。path環境變量可以存放多個路徑,路徑和路徑之間用分號(;)隔開。在其他的操作系統下可能是用其他的符號分隔,比如在Linux下就是用冒號(:)。我們可以在Windows系統環境變量窗口中設置系統變量。在如圖1.7所示窗口中,單擊名為“path”的變量(如果沒有你想設置的環境變量選項,在“用戶變量”或“系統變量”中選擇“新建”來添加),選擇“編輯”。然后如圖1.9所示,在打開的“編輯系統變量”窗口中的“變量值”輸入框中加入你想設置的環境變量值。圖 1.9對于path,可以在原有值的基礎上添加新的路徑,因為我們想在任意路徑下運行j
17、ava.exe、javac.exe等程序,所以應當在path原有值的末尾加上分號(;),然后再加上Java編譯器所在的路徑(這里是c:j2sdk1.4.0bin),最后單擊“確定”按鈕,這樣設置就完成了。接著,重新啟動一個新的命令行窗口,執行set命令,查看剛才的設置結果。這種方法的優點是設置一次之后,系統會保存此設置,對以后在當前操作系統上運行的任何程序都有效,但不會影響先前已經運行起來的程序,特別是命令行窗口程序(如果想要使設置的值生效,只能關閉原來的命令行窗口,再重新啟動一個新的命令行窗口程序)。也可以直接在命令行窗口下設置環境變量,針對上面的情況,可以在命令行窗口中執行set path
18、=c:j2sdk1.4.0bin;%path%;,這樣在這個命令行窗口中的任意路徑下都可以執行Java.exe程序了。講到這里肯定會有讀者提出疑問了,%path%究竟起什么作用呢?將某個環境變量包含在一對百分號(%)之間,就表示該環境變量的當前取值。在圖1.8中,“C:WINNTsystem32; C:WINNT;C:WINNTSystem32Wbem;c:j2sdk1.4.0bin;”這個長長的字符串就代表了%path%。務必注意,在命令行窗口下的設置只對當前這個窗口有效,并不會影響到其他命令行窗口和程序。解決了第一種錯誤,再來看看如圖1.5所示的第二種錯誤。產生這種錯誤的原因可能是由于在設
19、置path時,忽視了path環境變量中的目錄的設置順序,譬如,使用set path=%path%;c:j2sdk1.4.0bin命令設置path環境變量,由于c:winntsystem32這個路徑排在c:j2sdk1.4.0bin前面,而在c:winntsystem32下也有一個java.exe程序。這樣,當運行Java命令時,執行的不是c:j2sdk1.4.0binjava.exe,而是c:winntsystem32java.exe,恰恰c:winntsystem32java.exe又是一個有問題的程序。在c:winntsystem32目錄下,怎么會出現一個有問題的java.exe呢?造成這
20、種錯誤的原因有多種,譬如,安裝完Jbuilder 8這類Java開發工具軟件時,Jbuilder 8安裝程序會將自己的java.exe復制到c:winntsystem32目錄下。java.exe啟動需要到原始安裝目錄中去裝載許多相關文件,如果以后又刪除或移動了Jbuilder 8的安裝目錄,就會出現這樣的問題。解決這個問題,只要將想用的java.exe所在的目錄放在path環境變量的前面,如:set path=c:j2sdk1.4.0bin;%path%。有時,計算機上安裝了多個Java開發工具,怎么知道在命令行窗口中執行的Java命令屬于哪個開發工具包中的呢?其實,只要在運行java.exe
21、的時候加上verbose參數就行了,格式如下:java -verboseJava虛擬機啟動時,就會顯示其詳細的加載過程信息,如圖1.10所示。圖1.10從圖1.10顯示的信息中,就能看出所運行的Java命令是屬于哪個開發工具包。作為初學者,不一定馬上會碰到上面的問題,但一旦變成了Java老手,反而有可能會碰到這些問題,因為老手使用Java的頻率更高了,遇到的環境更復雜了,碰到問題的概率也就大多了。盡管傳染科的醫生防范傳染病的經驗很豐富,但他接觸傳染源的機會也越多,反而比普通醫生被傳染的可能性大多了。這正是“常在河邊走,哪能不濕鞋”。別著急,熟能生巧、勤能補拙,編的程序多了,遇到的錯誤就多了,排
22、除錯誤的能力也多了,經驗也就更豐富了。現在讀者基本有了一個可實驗的環境,下面就可以來體驗一下Java的編程過程了。1.3 體驗Java編程的過程首先用記事本程序建立一個名為Test.java的源文件(在實際操作中,我們常常會用到一些更好的工具軟件,例如UltraEdit、EditPlus等,它們有很多記事本程序不能比擬的優點。比如:支持用不同的顏色標記關鍵字、類名;能自動顯示行號,以便于更加方便地查找所需要的代碼;能夠自動縮進,減少了書寫程序代碼的工作量;能夠同時編輯多個文件,方便在多個文件之間反復切換;還可以正常顯示Linux格式的文本文件。簡單就是美,為了不讓工具軟件的操作干擾讀者的學習視線,初學者開始時還是用記事本程序作為Java源文件的編輯器為好),文件內容如下:程序清單:Test.javaclass Testpublic static void main(String args)System.out.println("My first Java program");在編譯和運行這個程序之前,必須對這個程序的內容作簡要介紹:(1)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版九年級數學上冊《21.3 實際問題與一元二次方程》同步測試題及答案
- 2025屆西藏拉薩市北京實驗中學七年級數學第二學期期末綜合測試試題含解析
- 2025屆泰安市重點中學七下數學期末達標檢測模擬試題含解析
- 客戶關系維護與拓展計劃
- 財務共享服務中心的建設與運作計劃
- 大型演出的安保方案實施計劃
- 浙江省杭州西湖區杭州市公益中學2025年八年級數學第二學期期末檢測試題含解析
- 軟件設計師考試復習資料試題及答案
- 企業戰略目標與風險承受能力評估試題及答案
- 開拓新思維的工作計劃
- 2025年中國消防救援學院第二批面向應屆畢業生招聘28人歷年管理單位筆試遴選500模擬題附帶答案詳解
- T-CIRA 46-2023 核電廠液態流出物中鍶89和鍶90分析 液體閃爍法
- 介入手術室感染控制管理
- 1學會尊重-尊重自己(說課稿 )-2023-2024學年道德與法治六年級下冊統編版
- 會計案例分析-終結性考核-國開(SC)-參考資料
- 中國近代史綱要北京航空航天大學練習題復習資料
- 胸痹中醫護理業務查房
- 裝飾材料供應合同模板
- GB/T 44748.1-2024篩分試驗第1部分:使用金屬絲編織網和金屬穿孔板試驗篩的方法
- 2020-2021學年人教部編版八年級道德與法治下冊 第一課 維護憲法權威 練習題
- 墻上高空作業施工方案
評論
0/150
提交評論