版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2/29目錄第1章程序設(shè)計(jì)語(yǔ)言概述第2章程序設(shè)計(jì)語(yǔ)言的基本成分第3章程序設(shè)計(jì)方法概述第4章面向?qū)ο笳Z(yǔ)言基礎(chǔ)第5章類的管理及常用工具類第6章異常處理和斷言第7章線程第8章GUI編程基礎(chǔ)和applet第9章I/O流第10章網(wǎng)絡(luò)通信第11章泛型與集合框架3/29第1章程序設(shè)計(jì)語(yǔ)言概述1.1程序的含義和程序設(shè)計(jì)策略包括程序的含義、程序設(shè)計(jì)的通用策略1.2程序設(shè)計(jì)語(yǔ)言重要屬性包括語(yǔ)言的范型、類型系統(tǒng)、編譯和解釋1.3Java語(yǔ)言概述包括誕生背景、發(fā)展、特點(diǎn)、開(kāi)發(fā)環(huán)境、運(yùn)行原理本章重點(diǎn)1、理解程序、程序設(shè)計(jì)、程序設(shè)計(jì)語(yǔ)言三概念;2、Java設(shè)計(jì)初衷、崛起原因、特點(diǎn)、環(huán)境配置。5/291.1程序的含義和程序設(shè)計(jì)策略1.1.2程序設(shè)計(jì)的通用策略經(jīng)千百年錘煉出的策略,如:理清思路、掌控主次;先抓主要矛盾,再抓次要矛盾;先定綱要,再寫(xiě)內(nèi)容。計(jì)算機(jī)程序開(kāi)發(fā)的經(jīng)典策略:自頂向下逐步求精N.Wirth于1971年提出;要點(diǎn):編制程序應(yīng)分若干步進(jìn)行,逐步細(xì)化。6/29自頂向下逐步求精——示例1:組織一場(chǎng)運(yùn)動(dòng)會(huì)1.1程序的含義和程序設(shè)計(jì)策略1.開(kāi)幕式2.各項(xiàng)比賽3.閉幕式運(yùn)動(dòng)會(huì)實(shí)施計(jì)劃程序名程序體1.開(kāi)幕式1.1運(yùn)動(dòng)員入場(chǎng)1.2相關(guān)人員講話1.3相關(guān)表演……2.各項(xiàng)比賽……3.閉幕式……運(yùn)動(dòng)會(huì)實(shí)施計(jì)劃第1步程序第2步程序明確、無(wú)歧義、能真正實(shí)施的計(jì)劃運(yùn)動(dòng)會(huì)實(shí)施計(jì)劃···第n步程序注意事項(xiàng):應(yīng)注意每次分解出子目標(biāo)/子步驟或者不宜過(guò)多。為什么?注意事項(xiàng):至少可以有兩種分解方式:1.)按日程分解,即第一天/第二天比賽項(xiàng)目、…;2.)按類別分解,田徑(短跑、長(zhǎng)跑、…)、體操、…;哪種方式較好,為什么?自頂向下逐步求精的精髓,就是簡(jiǎn)化問(wèn)題求解步驟,即復(fù)雜問(wèn)題可分為簡(jiǎn)單的幾步,每一步驟又是簡(jiǎn)單的幾步,如此,直至某一步驟可通過(guò)一條指令/過(guò)程/成熟算法來(lái)完成。7/291.1程序的含義和程序設(shè)計(jì)策略自頂向下逐步求精——示例2:給定有序數(shù)組a[0..n-1]?,F(xiàn)輸入一個(gè)整數(shù),將其插入該數(shù)組的合適位置,使其仍有序。1)輸入數(shù)據(jù);2)找位置;3)移出空位;4)實(shí)施插入。f(int[]a,intlen)···1)輸入數(shù)據(jù);2)找位置;……3)移出空位;移動(dòng)起/止/規(guī)律4)實(shí)施插入。f(int[]a,intlen)優(yōu)化:是否可以將2、3兩步合并?能否改進(jìn)等問(wèn)題,應(yīng)當(dāng)成為一種常態(tài)思維。用Java、C等語(yǔ)言書(shū)寫(xiě)的源代碼f(int[]a,intlen)8/291.1程序的含義和程序設(shè)計(jì)策略1.1.3運(yùn)行程序的兩種基本方式兩種:編譯方式和解釋方式編譯方式:編:編輯(優(yōu)化),譯:翻譯做法:用編譯器將源代碼全部一次性地翻譯成二進(jìn)制代碼語(yǔ)言:C/C++、Pascal/Delphi、……優(yōu)點(diǎn):能提高代碼質(zhì)量、程序執(zhí)行速度快缺點(diǎn):程序運(yùn)行期間,程序員無(wú)法干預(yù)編譯器硬件源代碼二進(jìn)制代碼9/291.1程序的含義和程序設(shè)計(jì)策略1.1.3運(yùn)行程序的兩種基本方式解釋方式做法:用解釋器將源代碼逐句翻譯源碼,逐句執(zhí)行;語(yǔ)言:Basic/VB、Java、C#、JSP、XML、……優(yōu)點(diǎn):能監(jiān)控程序執(zhí)行,可通過(guò)在解釋器(也稱虛擬機(jī))中新增機(jī)制或模擬硬件,提供更多更高級(jí)的語(yǔ)言機(jī)制;缺點(diǎn):代碼很難優(yōu)化(為什么?)、程序執(zhí)行速度慢解釋器(虛擬機(jī))硬件源代碼二進(jìn)制代碼目前,解釋性語(yǔ)言日漸興起。源于兩點(diǎn):1.)速度足以應(yīng)對(duì)普通應(yīng)用;2.)易于擴(kuò)充高級(jí)語(yǔ)言機(jī)制10/291.2程序設(shè)計(jì)語(yǔ)言重要屬性語(yǔ)言的設(shè)計(jì)范型類型系統(tǒng)編譯型語(yǔ)言和解釋型語(yǔ)言11/291.2程序設(shè)計(jì)語(yǔ)言重要屬性1.2.1語(yǔ)言的設(shè)計(jì)范型計(jì)算是計(jì)算機(jī)最核心任務(wù)。語(yǔ)言的設(shè)計(jì)范型就是如何看待計(jì)算,這是描述計(jì)算的前提和基礎(chǔ)。例如:目前主流有四種范型:命令式范型:計(jì)算就是用指令去修改數(shù)據(jù);面向?qū)ο笫椒缎停河?jì)算就是對(duì)象間的互操作;函數(shù)式范型:計(jì)算就是對(duì)數(shù)學(xué)函數(shù)的求解;邏輯式范型:計(jì)算就是為做出邏輯判定而進(jìn)行的推理。范型框定了程序最基本的范疇。例如,對(duì)命令式語(yǔ)言,基礎(chǔ)成分就是指令、數(shù)據(jù),這樣才能表達(dá)命令式的計(jì)算。12/291.2程序設(shè)計(jì)語(yǔ)言重要屬性1.2.2類型系統(tǒng)類型系統(tǒng)是程序設(shè)計(jì)語(yǔ)言最為核心的成分之一。涉及數(shù)據(jù)如何組織、分類,新類別怎樣構(gòu)造,類型如何使用,以及類型安全等方面。主要討論分類和構(gòu)造強(qiáng)類型和弱類型靜態(tài)語(yǔ)言和動(dòng)態(tài)語(yǔ)言13/291.2程序設(shè)計(jì)語(yǔ)言重要屬性1.2.2類型系統(tǒng)分類和構(gòu)造分類策略:基本類型+新類型構(gòu)造機(jī)制注意:基本類型對(duì)應(yīng)最基本數(shù)據(jù),且類型不能太多;基本類型常用匯編、C等設(shè)計(jì);類型構(gòu)造機(jī)制應(yīng)易用且安全?!?jiǎn)單比較C和Java的類型系統(tǒng)描述數(shù)據(jù)是程序設(shè)計(jì)語(yǔ)言最重要基礎(chǔ)的任務(wù)之一。14/291.2程序設(shè)計(jì)語(yǔ)言重要屬性1.2.2類型系統(tǒng)強(qiáng)類型語(yǔ)言和弱類型語(yǔ)言“強(qiáng)”是指類型檢查嚴(yán)格;如if(i=5)類型檢查強(qiáng)弱與自動(dòng)類型轉(zhuǎn)換密切相關(guān)。強(qiáng)類型語(yǔ)言要求:轉(zhuǎn)換后數(shù)據(jù)無(wú)損+轉(zhuǎn)換前后類型的語(yǔ)義要相容。強(qiáng)類型語(yǔ)言,常見(jiàn)的有Pascal、Java、C#等;弱類型語(yǔ)言,常見(jiàn)的有C、VB、Python等。強(qiáng)類型語(yǔ)言可以充分利用強(qiáng)大的類型檢查功能,幫助程序員在運(yùn)行前檢測(cè)出程序中的許多錯(cuò)誤,從而在一定程度上提高軟件的可靠性。弱類型語(yǔ)言使用靈活、方便,但也更易出錯(cuò)。15/291.2程序設(shè)計(jì)語(yǔ)言重要屬性1.2.2類型系統(tǒng)靜態(tài)語(yǔ)言和動(dòng)態(tài)語(yǔ)言靜態(tài):與編譯器相關(guān);動(dòng)態(tài):與運(yùn)行時(shí)相關(guān)。屬性:不可變更的關(guān)聯(lián);綁定:可變更的關(guān)聯(lián)。如……靜態(tài)語(yǔ)言要求類型靜態(tài)綁定,動(dòng)態(tài)語(yǔ)言要求類型動(dòng)態(tài)綁定,即運(yùn)行時(shí)的不同時(shí)刻變量可以擁有不同的類型。靜態(tài)語(yǔ)言:C、Pascal、C++、Java、C#動(dòng)態(tài)語(yǔ)言:VB、Python
動(dòng)態(tài)類型語(yǔ)言有三大內(nèi)傷:1.類型的動(dòng)態(tài)綁定讓編譯器的錯(cuò)誤檢測(cè)功能喪失殆盡;2.變量存儲(chǔ)空間須能夠彈性變化,執(zhí)行開(kāi)銷大;3.動(dòng)態(tài)語(yǔ)言必須是解釋型語(yǔ)言。靜態(tài)語(yǔ)言可充分利用編譯階段的語(yǔ)法檢查,提高程序的可靠性,同時(shí)類型信息也為編譯優(yōu)化提供幫助。動(dòng)態(tài)語(yǔ)言讓一個(gè)變量在不同時(shí)刻擁有不同的類型,這為編程帶來(lái)很大的靈活性。Statictypingwhenpossible,dynamictypingwhenneeded。換言之,對(duì)大多數(shù)類型,盡可能采用靜態(tài)類型綁定機(jī)制;當(dāng)然,對(duì)極個(gè)別特殊類型,也可定制專門(mén)的動(dòng)態(tài)類型綁定機(jī)制。16/291.2程序設(shè)計(jì)語(yǔ)言重要屬性1.2.3編譯型語(yǔ)言和解釋型語(yǔ)言編譯型語(yǔ)言以編譯方式運(yùn)行的語(yǔ)言解釋型語(yǔ)言以解釋方式運(yùn)行的語(yǔ)言17/291.3Java語(yǔ)言概述Java語(yǔ)言的誕生和發(fā)展Java語(yǔ)言的特點(diǎn)Java編程環(huán)境Java程序的運(yùn)行原理18/291.3Java語(yǔ)言概述1.3.1Java語(yǔ)言的誕生和發(fā)展產(chǎn)生背景1990年12月,Sun成立了一個(gè)以JamesGosling為首的項(xiàng)目小組”theGreenProject”(Secretly),基于C++來(lái)開(kāi)發(fā)消費(fèi)電子類產(chǎn)品(嵌入式設(shè)備)。后發(fā)現(xiàn)問(wèn)題:嵌入式設(shè)備資源有限VSC++程序太過(guò)龐大;芯片將嵌入不同硬件VSC++程序難跨平臺(tái)。解決策略:依托C++,參照SmallTalk、Ada,設(shè)計(jì)出小巧、夠用、能跨平臺(tái)的新語(yǔ)言。1992年Oak誕生,因重名于1995年更名為Java。JamesGosling19/291.3Java語(yǔ)言概述產(chǎn)生背景Oak新出,市場(chǎng)不成熟,生產(chǎn)商不用,Oak被擱置;1993年,Internet迅猛發(fā)展為Java帶來(lái)機(jī)遇:網(wǎng)絡(luò)環(huán)境是多種軟硬件平臺(tái)共存的異構(gòu)環(huán)境,因此需要能夠支持跨平臺(tái)的編程語(yǔ)言;當(dāng)時(shí)網(wǎng)速很小,不支持體積龐大的網(wǎng)絡(luò)程序。上述要求與嵌入式平臺(tái)的要求何其相像?!調(diào)整Oak并新增Applet以及可運(yùn)行Applet程序的瀏覽器HotJava。動(dòng)態(tài)網(wǎng)頁(yè)的魅力引起了轟動(dòng)。1995年,IBM、Apple、HP、Oracle、Nescape、微軟等宣布支持Java。20/291.3Java語(yǔ)言概述1.3.1Java語(yǔ)言的誕生和發(fā)展Java的發(fā)展1998年之前:十分簡(jiǎn)陋,程序運(yùn)行速度也極低。甚至程序員之間交流經(jīng)驗(yàn),如何讓Java跑的更快。1998年12月,發(fā)布JDK1.2,對(duì)內(nèi)核作了重大改進(jìn),也廢棄了許多原有成分。以至于Sun將1.2版之后的Java稱之為Java2,即第二代Java。2004年9月,發(fā)布JDK1.5,引入許多現(xiàn)代語(yǔ)言的高級(jí)特色,如泛型等。Sun對(duì)1.5版的java引領(lǐng)程序設(shè)計(jì)語(yǔ)言的發(fā)展潮流充滿期望,并為其取了個(gè)雄壯的名字:Tiger。21/291.3Java語(yǔ)言概述1.3.2Java語(yǔ)言的特點(diǎn)完全面向?qū)ο蠛秃?jiǎn)單性相對(duì)于C++支持過(guò)程式程序設(shè)計(jì)、機(jī)制較復(fù)雜而言平臺(tái)無(wú)關(guān)性實(shí)現(xiàn)跨平臺(tái)需要兩個(gè)關(guān)鍵要素:虛擬機(jī)和字節(jié)碼。注意:不同平臺(tái)有相同的字節(jié)碼,但要用不同的虛擬機(jī)22/291.3Java語(yǔ)言概述1.3.2Java語(yǔ)言的特點(diǎn)安全性和可靠性安全性,是指程序自身抵御外界攻擊的能力??煽啃裕侵赶到y(tǒng)在某時(shí)間段內(nèi)運(yùn)行不出錯(cuò)的幾率。網(wǎng)絡(luò)程序?qū)Π踩院涂煽啃杂兄鼮槠惹械囊?;Java從語(yǔ)言的語(yǔ)法、到運(yùn)行環(huán)境,為提升程序的安全性和可靠性做了大量努力;23/291.3Java語(yǔ)言概述1.3.2Java語(yǔ)言的特點(diǎn)并發(fā)和分布式計(jì)算的支持Java有RMI機(jī)制,以支持分布式計(jì)算。用線程機(jī)制支持并發(fā)執(zhí)行。高效的網(wǎng)絡(luò)編程機(jī)制Java雄起源自網(wǎng)絡(luò),強(qiáng)項(xiàng)也在網(wǎng)絡(luò)編程。如提供常用網(wǎng)絡(luò)通信協(xié)議的接口;使用流思想、序列化思想等,來(lái)簡(jiǎn)化通信模型。甚至用Object類作為始祖類,也有方便網(wǎng)絡(luò)通信編程的目的。24/291.3Java語(yǔ)言概述1.3.3Java編程環(huán)境JDK的組成25/291.3Java語(yǔ)言概述1.3.3Java編程環(huán)境JDK的下載、安裝與設(shè)置/javase/downloads/index.jsp安裝后,產(chǎn)生的目錄結(jié)構(gòu)介紹;通過(guò)src.zip,可了解系統(tǒng)類內(nèi)部設(shè)計(jì)細(xì)節(jié)。對(duì)理解某些復(fù)雜機(jī)制非常有幫助;Path、classPath的作用及設(shè)置(注意classPath路徑設(shè)置時(shí)要添加";.\")Java幫助文件的使用內(nèi)容最權(quán)威也最全面26/291.3Java語(yǔ)言概
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024水箱安全檢測(cè)與銷售服務(wù)合作協(xié)議3篇
- 2025年度銷售合同終止及市場(chǎng)拓展合作管理協(xié)議2篇
- 個(gè)體工商戶商鋪?zhàn)赓U標(biāo)準(zhǔn)協(xié)議模板版A版
- 2024年度商鋪離婚協(xié)議及企業(yè)經(jīng)營(yíng)權(quán)轉(zhuǎn)讓與風(fēng)險(xiǎn)分擔(dān)合同3篇
- 二零二五年豪華二手車經(jīng)銷合作框架合同2篇
- 二零二五年砂石料買(mǎi)賣協(xié)議3篇
- 2024標(biāo)準(zhǔn)窗簾買(mǎi)賣合同樣本版B版
- 二零二五版25MW柴油發(fā)電機(jī)電站發(fā)電設(shè)備安裝調(diào)試服務(wù)協(xié)議3篇
- 西安明德理工學(xué)院《項(xiàng)目管理與案例分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版家政服務(wù)三方合同范本
- 心理學(xué)專業(yè)知識(shí)考試參考題庫(kù)500題(含答案)(一)
- 2024年浙江高考技術(shù)試題(含答案)
- 資管行業(yè)投研一體化建設(shè)
- 提高保險(xiǎn)公司客戶投訴處理能力的整改措施
- 物業(yè)費(fèi)收取協(xié)議書(shū)模板
- 電工(中級(jí)工)理論知識(shí)練習(xí)題(附參考答案)
- 工業(yè)設(shè)計(jì)概論試題
- 起重機(jī)的維護(hù)保養(yǎng)要求與月度、年度檢查記錄表
- 消防設(shè)施維護(hù)保養(yǎng)記錄表
- 城區(qū)生活垃圾填埋場(chǎng)封場(chǎng)項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 垃圾分類巡檢督導(dǎo)方案
評(píng)論
0/150
提交評(píng)論