




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2/29目錄第1章程序設計語言概述第2章程序設計語言的基本成分第3章程序設計方法概述第4章面向對象語言基礎第5章類的管理及常用工具類第6章異常處理和斷言第7章線程第8章GUI編程基礎和applet第9章I/O流第10章網絡通信第11章泛型與集合框架3/29第1章程序設計語言概述1.1程序的含義和程序設計策略包括程序的含義、程序設計的通用策略1.2程序設計語言重要屬性包括語言的范型、類型系統、編譯和解釋1.3Java語言概述包括誕生背景、發展、特點、開發環境、運行原理本章重點1、理解程序、程序設計、程序設計語言三概念;2、Java設計初衷、崛起原因、特點、環境配置。5/291.1程序的含義和程序設計策略1.1.2程序設計的通用策略經千百年錘煉出的策略,如:理清思路、掌控主次;先抓主要矛盾,再抓次要矛盾;先定綱要,再寫內容。計算機程序開發的經典策略:自頂向下逐步求精N.Wirth于1971年提出;要點:編制程序應分若干步進行,逐步細化。6/29自頂向下逐步求精——示例1:組織一場運動會1.1程序的含義和程序設計策略1.開幕式2.各項比賽3.閉幕式運動會實施計劃程序名程序體1.開幕式1.1運動員入場1.2相關人員講話1.3相關表演……2.各項比賽……3.閉幕式……運動會實施計劃第1步程序第2步程序明確、無歧義、能真正實施的計劃運動會實施計劃···第n步程序注意事項:應注意每次分解出子目標/子步驟或者不宜過多。為什么?注意事項:至少可以有兩種分解方式:1.)按日程分解,即第一天/第二天比賽項目、…;2.)按類別分解,田徑(短跑、長跑、…)、體操、…;哪種方式較好,為什么?自頂向下逐步求精的精髓,就是簡化問題求解步驟,即復雜問題可分為簡單的幾步,每一步驟又是簡單的幾步,如此,直至某一步驟可通過一條指令/過程/成熟算法來完成。7/291.1程序的含義和程序設計策略自頂向下逐步求精——示例2:給定有序數組a[0..n-1]。現輸入一個整數,將其插入該數組的合適位置,使其仍有序。1)輸入數據;2)找位置;3)移出空位;4)實施插入。f(int[]a,intlen)···1)輸入數據;2)找位置;……3)移出空位;移動起/止/規律4)實施插入。f(int[]a,intlen)優化:是否可以將2、3兩步合并?能否改進等問題,應當成為一種常態思維。用Java、C等語言書寫的源代碼f(int[]a,intlen)8/291.1程序的含義和程序設計策略1.1.3運行程序的兩種基本方式兩種:編譯方式和解釋方式編譯方式:編:編輯(優化),譯:翻譯做法:用編譯器將源代碼全部一次性地翻譯成二進制代碼語言:C/C++、Pascal/Delphi、……優點:能提高代碼質量、程序執行速度快缺點:程序運行期間,程序員無法干預編譯器硬件源代碼二進制代碼9/291.1程序的含義和程序設計策略1.1.3運行程序的兩種基本方式解釋方式做法:用解釋器將源代碼逐句翻譯源碼,逐句執行;語言:Basic/VB、Java、C#、JSP、XML、……優點:能監控程序執行,可通過在解釋器(也稱虛擬機)中新增機制或模擬硬件,提供更多更高級的語言機制;缺點:代碼很難優化(為什么?)、程序執行速度慢解釋器(虛擬機)硬件源代碼二進制代碼目前,解釋性語言日漸興起。源于兩點:1.)速度足以應對普通應用;2.)易于擴充高級語言機制10/291.2程序設計語言重要屬性語言的設計范型類型系統編譯型語言和解釋型語言11/291.2程序設計語言重要屬性1.2.1語言的設計范型計算是計算機最核心任務。語言的設計范型就是如何看待計算,這是描述計算的前提和基礎。例如:目前主流有四種范型:命令式范型:計算就是用指令去修改數據;面向對象式范型:計算就是對象間的互操作;函數式范型:計算就是對數學函數的求解;邏輯式范型:計算就是為做出邏輯判定而進行的推理。范型框定了程序最基本的范疇。例如,對命令式語言,基礎成分就是指令、數據,這樣才能表達命令式的計算。12/291.2程序設計語言重要屬性1.2.2類型系統類型系統是程序設計語言最為核心的成分之一。涉及數據如何組織、分類,新類別怎樣構造,類型如何使用,以及類型安全等方面。主要討論分類和構造強類型和弱類型靜態語言和動態語言13/291.2程序設計語言重要屬性1.2.2類型系統分類和構造分類策略:基本類型+新類型構造機制注意:基本類型對應最基本數據,且類型不能太多;基本類型常用匯編、C等設計;類型構造機制應易用且安全。——簡單比較C和Java的類型系統描述數據是程序設計語言最重要基礎的任務之一。14/291.2程序設計語言重要屬性1.2.2類型系統強類型語言和弱類型語言“強”是指類型檢查嚴格;如if(i=5)類型檢查強弱與自動類型轉換密切相關。強類型語言要求:轉換后數據無損+轉換前后類型的語義要相容。強類型語言,常見的有Pascal、Java、C#等;弱類型語言,常見的有C、VB、Python等。強類型語言可以充分利用強大的類型檢查功能,幫助程序員在運行前檢測出程序中的許多錯誤,從而在一定程度上提高軟件的可靠性。弱類型語言使用靈活、方便,但也更易出錯。15/291.2程序設計語言重要屬性1.2.2類型系統靜態語言和動態語言靜態:與編譯器相關;動態:與運行時相關。屬性:不可變更的關聯;綁定:可變更的關聯。如……靜態語言要求類型靜態綁定,動態語言要求類型動態綁定,即運行時的不同時刻變量可以擁有不同的類型。靜態語言:C、Pascal、C++、Java、C#動態語言:VB、Python
動態類型語言有三大內傷:1.類型的動態綁定讓編譯器的錯誤檢測功能喪失殆盡;2.變量存儲空間須能夠彈性變化,執行開銷大;3.動態語言必須是解釋型語言。靜態語言可充分利用編譯階段的語法檢查,提高程序的可靠性,同時類型信息也為編譯優化提供幫助。動態語言讓一個變量在不同時刻擁有不同的類型,這為編程帶來很大的靈活性。Statictypingwhenpossible,dynamictypingwhenneeded。換言之,對大多數類型,盡可能采用靜態類型綁定機制;當然,對極個別特殊類型,也可定制專門的動態類型綁定機制。16/291.2程序設計語言重要屬性1.2.3編譯型語言和解釋型語言編譯型語言以編譯方式運行的語言解釋型語言以解釋方式運行的語言17/291.3Java語言概述Java語言的誕生和發展Java語言的特點Java編程環境Java程序的運行原理18/291.3Java語言概述1.3.1Java語言的誕生和發展產生背景1990年12月,Sun成立了一個以JamesGosling為首的項目小組”theGreenProject”(Secretly),基于C++來開發消費電子類產品(嵌入式設備)。后發現問題:嵌入式設備資源有限VSC++程序太過龐大;芯片將嵌入不同硬件VSC++程序難跨平臺。解決策略:依托C++,參照SmallTalk、Ada,設計出小巧、夠用、能跨平臺的新語言。1992年Oak誕生,因重名于1995年更名為Java。JamesGosling19/291.3Java語言概述產生背景Oak新出,市場不成熟,生產商不用,Oak被擱置;1993年,Internet迅猛發展為Java帶來機遇:網絡環境是多種軟硬件平臺共存的異構環境,因此需要能夠支持跨平臺的編程語言;當時網速很小,不支持體積龐大的網絡程序。上述要求與嵌入式平臺的要求何其相像?!調整Oak并新增Applet以及可運行Applet程序的瀏覽器HotJava。動態網頁的魅力引起了轟動。1995年,IBM、Apple、HP、Oracle、Nescape、微軟等宣布支持Java。20/291.3Java語言概述1.3.1Java語言的誕生和發展Java的發展1998年之前:十分簡陋,程序運行速度也極低。甚至程序員之間交流經驗,如何讓Java跑的更快。1998年12月,發布JDK1.2,對內核作了重大改進,也廢棄了許多原有成分。以至于Sun將1.2版之后的Java稱之為Java2,即第二代Java。2004年9月,發布JDK1.5,引入許多現代語言的高級特色,如泛型等。Sun對1.5版的java引領程序設計語言的發展潮流充滿期望,并為其取了個雄壯的名字:Tiger。21/291.3Java語言概述1.3.2Java語言的特點完全面向對象和簡單性相對于C++支持過程式程序設計、機制較復雜而言平臺無關性實現跨平臺需要兩個關鍵要素:虛擬機和字節碼。注意:不同平臺有相同的字節碼,但要用不同的虛擬機22/291.3Java語言概述1.3.2Java語言的特點安全性和可靠性安全性,是指程序自身抵御外界攻擊的能力。可靠性,是指系統在某時間段內運行不出錯的幾率。網絡程序對安全性和可靠性有著更為迫切的要求;Java從語言的語法、到運行環境,為提升程序的安全性和可靠性做了大量努力;23/291.3Java語言概述1.3.2Java語言的特點并發和分布式計算的支持Java有RMI機制,以支持分布式計算。用線程機制支持并發執行。高效的網絡編程機制Java雄起源自網絡,強項也在網絡編程。如提供常用網絡通信協議的接口;使用流思想、序列化思想等,來簡化通信模型。甚至用Object類作為始祖類,也有方便網絡通信編程的目的。24/291.3Java語言概述1.3.3Java編程環境JDK的組成25/291.3Java語言概述1.3.3Java編程環境JDK的下載、安裝與設置/javase/downloads/index.jsp安裝后,產生的目錄結構介紹;通過src.zip,可了解系統類內部設計細節。對理解某些復雜機制非常有幫助;Path、classPath的作用及設置(注意classPath路徑設置時要添加";.\")Java幫助文件的使用內容最權威也最全面26/291.3Java語言概
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030液體掃描儀行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國空氣發生器行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國男士全棉內衣行業產業運行態勢及投資規劃深度研究報告
- 2025至2030中國版驅蚊手環市場盈利模式及企業經營形勢分析報告
- 2025至2030中國熏腸行業發展趨勢分析與未來投資戰略咨詢研究報告
- 兩位數乘一位數計算單元監控習題帶答案
- 祛屑滋潤洗發露項目投資可行性研究分析報告(2024-2030版)
- 建筑新材料項目投資可行性研究分析報告(2024-2030版)
- 中國尼龍管材行業發展趨勢預測及投資戰略研究報告
- 2025年中國環形電感器行業市場發展前景及發展趨勢與投資戰略研究報告
- 巖土鉆探工程課件
- 兒科執業醫師考試常考題
- 工程建設項目的生命周期培訓
- 顱內感染預后預測模型建立
- 快消品行業的營銷渠道分析
- MOOC Web GIS原理與應用-河南大學 中國大學慕課答案
- 福建省廈門市五年級第二學期期末質量監測(含答案)
- 物流數據分析與決策
- 2024年河北交通投資集團公司招聘筆試參考題庫含答案解析
- 預防職務犯罪課件
- 酒店質檢得分表儀容儀表行為規范禮貌禮節
評論
0/150
提交評論