




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Java語言程序設計朱輝, 計算機網(wǎng)絡教研室,2#414參考書目考核方式 實驗驗收及報告 期末考試實驗安排授課目錄 第1章 JAVA概述 第3章 JAVA程序基礎 第4章 面向?qū)ο蠹夹g(shù) 第5章 事件處理 第6章 異常處理 第7章 輸入和輸出 第8章 AWT與布局管理器 第9章 SWING構(gòu)件 第10章 APPLET程序 第11章 多線程 第12章 網(wǎng)絡編程 第13章 JAVA安全性 第14章 JDBC編程 第15章 RMI編程技術(shù) 第16章 JAVA與CORBA 第17章 JNI技術(shù)第1章 JAVA概述 1.1 JAVA誕生 1.2 JAVA其特點及與C/C+差異 1.3 JAVA運行機制及運
2、行時刻環(huán)境 1.4 JAVA2 SDK及開發(fā)環(huán)境 1.5 JAVA編程舉例 C/C+的一些概念 C語言是貝爾實驗室的Dennis Ritchie在B語言的基礎上開發(fā)出來的,于1972年在一臺DEC PDP-11計算機上實現(xiàn)了最初的C語言。C是作為UNIX操作系統(tǒng)的開發(fā)語言而開始廣為人們所認識的。當今許多新的、重要的操作系統(tǒng)都是用C或C+編寫的。在過去20年內(nèi),C語言已經(jīng)能夠用在絕大多數(shù)計算機上了。由于C語言的一些顯著特點,如與硬件無關、設計嚴謹,使得用C語言編寫的程序移植到大多數(shù)計算機上成為可能。 到20世紀70年代末,C已經(jīng)演化為現(xiàn)在所說的“傳統(tǒng)的C語言”。Kernighan及Ritchie
3、在1978年出版的The C Programming Language一書中全面地介紹了傳統(tǒng)的C語言。C語言的不斷發(fā)展導致出現(xiàn)了許多C語言版本,雖然大多版本是類似的,但通常都不兼容,這對希望開發(fā)出的代碼能夠在多種平臺上運行的程序開發(fā)者來說是一個嚴重的問題。為了明確地定義與機器無關的C語言,1989年美國國家標準協(xié)會制定了C語言的標準(ANSI C)。Kernighan和Ritchie編著的The C Programming Language(第二版)介紹了ANSI C的全部內(nèi)容。 C語言具有其獨特的優(yōu)點,包括: (1) 語言簡潔、緊湊,使用方便、靈活。C語言只有32個關鍵字,程序書寫形式自由。
4、 (2) 豐富的運算符和數(shù)據(jù)類型。 (3) C語言可以直接訪問內(nèi)存地址,能進行位操作,能夠勝任開發(fā)操作系統(tǒng)的工作。 (4) 生成的目標代碼質(zhì)量高,程序運行效率高。 (5) 可移植性好。 雖說C語言具有以上的一些優(yōu)點,但在實際的程序開發(fā)過程中也暴露出了一些不足: (1) C類型檢查機制比較薄弱,使得程序設計中的一些錯誤不能在編譯時被發(fā)現(xiàn)。 (2) C本身幾乎沒有支持代碼重用的語言結(jié)構(gòu),因此一個程序員精心設計的程序,很難為其他程序共用。 (3) 當程序的規(guī)模達到一定程度的時候,程序員很難控制程序的復雜性。 為了滿足管理程序的復雜性要求,貝爾實驗室的Bjarne Stroustrup開始對C進行改進
5、和擴充。最初的成果稱為“帶類的C”,1983年正式取名為C+。在經(jīng)歷了3次修訂后,于1994年制定了ANSI C+標準的草案。以后又經(jīng)過不斷完善,成為目前的C+。C+包含了整個C,C是建立C+的基礎。C+包括C的全部特征、屬性和優(yōu)點,同時添加了面向?qū)ο缶幊?OOP)的完全支持。 1.1.2 從C到C+ 經(jīng)過上面的描述,大家對C語言的優(yōu)、缺點有了一個具體的認識。C語言從本質(zhì)上說是屬于過程性語言,其程序設計方法也是遵從于結(jié)構(gòu)化程序設計。結(jié)構(gòu)化程序設計的主要思想是功能分解并逐步求精,比如,當一些任務非常復雜以至無法描述時,可以將它拆分為一系列較小的功能部件,直到這些自完備的子任務小到易于理解的程度。
6、但是,采用結(jié)構(gòu)化程序設計方法的程序員很快發(fā)現(xiàn),每一種相對于老問題的新方法都要帶來額外的開銷,通常稱這為重復投入。 基于可重用性的思想是指建立一些具有已知特性的部件,在需要時可以插入到程序之中。這可以說是一種模仿硬件組合方式的做法,當工程師需要一個新的晶體管時,當然不用自己去發(fā)明,只要去電子市場買一個就行了,對于軟件工程師來說,在面向?qū)ο蟪绦蛟O計出現(xiàn)之前,一直缺乏具備這種能力的工具。 C+語言包括過程性語言部分和類部分,類部分是C中所沒有的,它是面向?qū)ο蟪绦蛟O計的主體。可想而知,結(jié)構(gòu)化程序設計隨著C+的出現(xiàn)也過渡到了面向?qū)ο蟪绦蛟O計,所以從C到C+也是自然而然的事了。 不過,C語言程序設計的經(jīng)驗
7、非常有益,因為C程序設計開發(fā)鍛煉了程序員進行抽象程序設計的能力,這正是C+更為抽象的概念和技術(shù)的基礎。而且,C+是C語言的擴展,它分享了C的許多技術(shù)風格。程序員使用C的經(jīng)驗越豐富,編寫C+程序也就越容易,所以,對C的學習,能夠促進對C+的學習,換句話說,C+的發(fā)展并沒有完全拋棄C的一些特點。1.1 JAVA的誕生 在JAVA誕生之前, 匯編BASICPASCALFORTRANCC+等主流的編程語言, 其中CC+應用最為廣泛. 其他語言還包括ADAFOX機器碼PERLPYTHON 機器碼ADABASICFORTRANPASCALCC+JAVA1.1 JAVA的誕生 1991年, SUN公司成立一
8、個專門為消費電子產(chǎn)品而設立了獨立研發(fā)小組”GREEN”, 以C編譯器為基礎, 設計和開發(fā)了一個新的編程語言. 1993年, 在一系列基礎研究 成功的基礎上SUN成立了一個FirstPerson的子公司. 這時的語言被稱為Oak. 1994年, Oak開始以和WWW相結(jié)合為目標設計. 1995年, 正式改名為JAVA, 并且獲得了廣泛的認同和巨大的成功.JAVA其特點及與C/C+差異 JAVA的技術(shù)特點 JAVA與C/C+差異JAVA的技術(shù)特點 語法結(jié)構(gòu)簡明 運行獨立于操作平臺 具有面向?qū)ο筇卣?面向網(wǎng)絡環(huán)境 動態(tài)性 安全性 穩(wěn)定性 多線程 類庫豐富語法結(jié)構(gòu)簡明 JAVA采用了與C類似的語法結(jié)構(gòu)
9、 JAVA取消了指針, 而保留了引用reference JAVA是面向?qū)ο笳Z言, 將方法都封裝在類中, 只要擁有權(quán)限就可以直接使用 略去了運算符重載多重繼承等模糊概念 實現(xiàn)內(nèi)存自動垃圾回收, 簡化內(nèi)存管理工作運行獨立于操作平臺軟件平臺的獨立性: 軟件本身不受計算機硬件設備和操作系統(tǒng)的限制, 軟件代碼具有相當?shù)莫毩⑿? 它可以在不同的計算機環(huán)境下良好的運行. 即“一次編寫, 到處運行”運行獨立于操作平臺 JAVA編譯程序的工作原理 JVM(Java Virtual Machine, Java虛擬機), 由于采用這樣的JVM機制, JAVA程序可以運行在任何一個安裝了JAVA虛擬機的系統(tǒng)上JAVA
10、源程序JAVA編譯器虛擬機代碼處理器專用代碼JAVA虛擬機安全性JAVA采取的安全措施包括有: 取消指針操作 內(nèi)存管理由JVM決定 在字節(jié)碼裝載過程中使用了字節(jié)碼校驗器 使用類裝入器 可以使用多種網(wǎng)絡協(xié)議的用戶接口 動態(tài)性, 指一個大的應用程序, 由多個小的類模塊組成, 在運行的時候才臨時進行組合, 這樣模塊是獨立于程序存在的 穩(wěn)定性, 指JAVA引入了異常處理機制和內(nèi)存自動回收機制多線程 進程是一個正在運行中的程序, 它有自己管理的一組系統(tǒng)資源和一個獨立的存儲空間. 其特點是它涉及的數(shù)據(jù)內(nèi)存是獨立的, 多進程系統(tǒng)就一定有進程之間的通信機制. 為了實現(xiàn)通信, 系統(tǒng)開銷較大. 線程是一個正在運行
11、中的程序,多個線程不僅可以共同使用一個內(nèi)存區(qū)域, 而且可以共享一組系統(tǒng)資源. 對每個線程來講, 只有堆棧和寄存器數(shù)據(jù)是獨立的, 線程之間進行通信和切換時, 系統(tǒng)開銷要小.JAVA與C/C+的差異 JAVA對內(nèi)存的分配是動態(tài)的, 采用new為每個對象分配內(nèi)存空間, 實際內(nèi)存會隨程序運行情況而改變, 并且JAVA系統(tǒng)自動對內(nèi)存進行掃描, 對長期不用的內(nèi)存空間作為垃圾回收 JAVA中無在所有函數(shù)外的全局變量, 而在一個類中定義一個公用景泰的變量實現(xiàn)該功能 JAVA使用try-catch-finally實現(xiàn)異常處理 JAVA不支持include頭文件, 而是采用import引入類庫 JAVA不支持宏定
12、義define, 而是采用final定義常量 JAVA不論任何操作系統(tǒng), 每種數(shù)據(jù)類型都分配了固定的長度 在數(shù)據(jù)類型間轉(zhuǎn)換時, JAVA要進行類型相容性檢查 JAVA中不包含聯(lián)合和結(jié)構(gòu), 而以類的形式實現(xiàn)該功能 JAVA不在使用指針1.3 JAVA運行機制 JAVA是一種半編譯半解釋的語言JAVA運行時刻環(huán)境 JAVA虛擬機 JAVA平臺 字節(jié)碼介紹 編譯與執(zhí)行過程 垃圾內(nèi)存收集 安全性問題JAVA虛擬機 JVM是可運行JAVA代碼的假想計算機. 只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的計算機上, 就能保證經(jīng)過編譯的任何JAVA代碼能夠在該系統(tǒng)上運行 JVM設計目標是提供一個抽象規(guī)格描述的計
13、算機模型, 為解釋程序開發(fā)人員提供很好的靈活性, 同時也確保了JAVA代碼可在符合該規(guī)范的任何系統(tǒng)上運行. JVM定義了控制JAVA代碼解釋執(zhí)行和具體實現(xiàn)的5種規(guī)格 JVM指令系統(tǒng) JVM寄存器 JVM堆棧結(jié)構(gòu) JVM碎片回收器 JVM存儲區(qū)JAVA平臺字節(jié)碼 JAVA應用程序的開發(fā)周期包括編譯裝載解釋和執(zhí)行幾個部分. JAVA編譯程序?qū)AVA源程序翻譯為JVM可執(zhí)行代碼字節(jié)碼(bytecode) 這些字節(jié)碼對于裝載在不同操作系統(tǒng)和硬件平臺的JVM是相同的. 解釋器在運行過程種創(chuàng)立內(nèi)存布局, 然后再通過查表來確定一個方法所在的地址. 以這樣的方式來保證JAVA的可移植和安全性. 運行JVM字
14、節(jié)碼的工作由解釋器來完成. 分為三個步驟:代碼裝入代碼校驗代碼執(zhí)行 JAVA是半編譯半執(zhí)行 垃圾內(nèi)存回收由JAVA自動完成, 這是與C/C+最大的不同之處安全性問題 字節(jié)碼檢驗器 類裝載器 內(nèi)存管理 文件訪問限制1.4 JAVA2 SDK及開發(fā)環(huán)境 1998年, SUN推出了最新版本的JDK(Java Software Development Kit, 簡稱J2DK), 其實際的版本號為1.5 它一共包含了3個小版本: J2MEJ2SEJ2EE, 其中J2ME中還有一個專門適用于智能卡的部分JAVA開發(fā)環(huán)境 安裝J2DK, 它是一個編譯和解釋環(huán)境, 一個JAVA程序由源文件(
15、后綴名為java)編譯為二進制文件(后綴名為class), 然后有JVM解釋執(zhí)行. 其中包括的應用工具有 Appletviewer: 小應用程序瀏覽器 c:appletviewer options className arguments Java: 解釋器 c:java options className arguments Javac: 編譯器 javac options filename.javaJAVA bin基本命令 JAVA解釋器, 命令格式c:java options className arguments Javac編譯器c:javac options filename.java
16、 JDK環(huán)境設置c:path=c:win98; c:win98command; c:jdk1.3binc:path=%path%; c:jdk1.3bin以上環(huán)境設置可以直接寫在windows的config.sys文件中, 現(xiàn)在大多數(shù)的java可視化編輯軟件里提供了JDK環(huán)境設置方法WIN XP配置Classpath .;C:j2sdk1.4.2_01libdt.jar;C:j2sdk1.4.2_01libtools.jar;C:Program FilesJavajdk1.6.0_14jrelibextservlet-api.jar;JAVA_HOME C:Program FilesJavajdk1.5.0_02binJAVA應用程序舉例/* HelloWorld.java */Public class HelloWorldpublic static void main(String args)System.out.println(“Hello World!”);JAVA小程序舉例/* HelloApplet.java*/import j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Module7 Unit1 He spent about twenty-one hours in space(教學設計)-2023-2024學年外研版(三起)英語六年級下冊
- 華北理工大學冀唐學院《研究型建筑設計》2023-2024學年第二學期期末試卷
- 山西國際商務職業(yè)學院《計算機組成原理理論》2023-2024學年第二學期期末試卷
- 哈爾濱鐵道職業(yè)技術(shù)學院《班級活動的組織》2023-2024學年第二學期期末試卷
- 遼寧民族師范高等專科學?!稒C電系統(tǒng)設計與控制》2023-2024學年第二學期期末試卷
- 廣州東華職業(yè)學院《海洋生物技術(shù)綜合實驗》2023-2024學年第二學期期末試卷
- 南昌大學科學技術(shù)學院《新編大學生安全教育》2023-2024學年第二學期期末試卷
- 河北科技師范學院《西方財務會計雙語》2023-2024學年第二學期期末試卷
- 共青科技職業(yè)學院《學前兒童保育學》2023-2024學年第二學期期末試卷
- 陜西理工大學《數(shù)字信號處理》2023-2024學年第二學期期末試卷
- 不吃路邊攤精品課件
- 《網(wǎng)絡服務器搭建、配置與管理-Linux(RHEL8、CentOS8)(微課版)(第4版)》全冊電子教案
- 心理評估與診斷簡介
- 無痛病房管理課件
- 讓孩子變成學習的天使——由《第56號教室的奇跡》讀書分享
- 球泡檢驗標準
- 公安筆錄模板之詢問嫌疑人(書面?zhèn)鲉局伟舶讣?
- 振動分析基礎講義1
- 記賬憑證匯總表excel模板
- 鄧麗君經(jīng)典歌曲30首簡譜(共33頁)
- 園林綠化施工通用表格模板
評論
0/150
提交評論