




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java語言概述
2024年8月12日星期一21.1程式設計語言概述
1.1.1電腦程式設計方法和語言隨著電腦硬體與通訊技術的發展,電腦應用領域越來越廣泛,應用規模也越來越大,程式設計不再是一、兩個程式員可完成的任務,在這種情況下編寫程式不再片面追求高效率,而是綜合考慮程式的可靠性、可擴展性、可重用性和可理解性等因素。
程式設計方法是獨立於具體程式設計語言的一門技術。由於程式設計通常離不開程式設計語言作為工具,所以容易混淆程式設計方法與程式設計語言的概念。程式設計語言的設計目的主要是為了支持某種程式設計方法。2024年8月12日星期一3早期的程式設計早期的高級程式設計語言有FORTROM、COBOL、BASIC等。這一時期由於追求程式的高效率,程式員過份依賴技巧與天份,不太注重程式的結構,。一個典型問題是程式中的控制隨意跳轉,即不加限制地使用goto語句,這樣的程式對閱讀者來說是難以理解的,程式員也難以修改程式。結構化的程式設計隨著程式規模與複雜性的不斷增長,20世紀60年代誕生了結構化程式設計方法。結構化程式設計方法的主要技術是自頂向下、逐步求精,採用單入口/單輸出的控制結構。這一程式設計方法的代表語言是Pascal、C、Ado等。2024年8月12日星期一4
自頂向下是一種分解問題的技術,與控制結構有關。逐步求精指對結構化程式進行分解,最終使其成為三種基本控制結構的組合。結構化程式設計的結果是一個程式最終由若干過程組成,每一個過程完成一個明確的功能。面向對象程式設計
雖然結構化程式設計提高了軟體生產率和軟體品質,但隨著程式規模與複雜性的增長,程式中的數據結構變得與這些數據上的操作同樣重要。在大型結構化程式中,一個數據結構可能由許多個過程來處理,修改數據結構將影響到所有相關的過程。在由幾百個過程組成的成千上萬行的結構化程式中,這種情況變得相當麻煩並且容易產生錯誤。
2024年8月12日星期一5
20世紀80年代興起的面向對象程式設計方法在結構化程式設計的基礎上提出了一種新的設計思路,最重要的改變是程式圍繞被操作的數據來設計,而不是圍繞操作本身。面向對象程式設計以類作為構造程式的基本單位,具有封裝、數據抽象、繼承、多態化等特點。較有影響的面向對象程式設計語言有Simula、C++、Java等。Java語言是在C++語言基礎上發展起來的一種適合分佈式計算的新型面向對象程式設計語言,也是目前推廣最快的程式設計語言。Java語言將面向對象、平臺無關性、穩定性與安全性、多線程等特徵集於一身,為用戶提供了一個良好的程式設計環境,特別適合因特網的應用開發。與當前迅速發展的因特網應用緊密結合是Java語言成功的關鍵所在。
2024年8月12日星期一61.1.2
電腦程式設計方法和語言面向對象與面向過程的區別
早期的編程語言如Fortran語言和C語言基本上都是面向過程的語言,主要是採用數學語言方式編程的語言,其編程的主要思路專注於演算法的實現。
傳統的面向過程的編程在描述問題時,由兩部分組成:數據:描述實體狀態的數據結構;過程:操作這些狀態數據的程式和步驟。
面向過程編程的一個顯著特點是數據與程式的分開。數據是靜止的東西,不會自行變化,必須通過過程操作來改變數據,因此,函數調用在面向過程編程中被大量使用。2024年8月12日星期一7
針對程式結構不清晰而無法維護改進的局面。面向對象編程提出了一種全新的思路,讓電腦語言結構像人類思維方式一樣簡單和清晰。面向對象的軟體開發中將世界上的事物均看成對象,任一對象有兩個特徵:行為與狀態。每個對象可以通過自身的行為來改變自己的狀態。在面向對象的世界中,通過對象間的協作與交互來運作。由於將對象的操作封閉在對象內,外部要與對象進行交互只能通過給對象發送“消息”,這個消息實際上就是調用對象的某個行為方法,消息中還包括方法的參數。2024年8月12日星期一8面向對象程式設計的特性封裝性
面向對象的第一個原則是把數據和該數據的操作都封裝在一個類中,比如說筆記本電腦就是一個類。筆記本電腦這個類有許多屬性,有些是靜態的(數據),比如:顯示幕的亮度,本身的重量;有些是動態的(對數據的操作),比如:可以按下組合鍵“ctrl+F4”或“ctrl+F5”來調整顯示器的亮度,可以卸掉它的外掛光驅來減輕它的重量。
對象是類的一個實例化結果,對象具有類所描述的所有的屬性以及方法。比如不同品牌、不同樣式的筆記本電腦之間的共同屬性就是它們所屬的類——筆記本電腦類的屬性。只不過類是抽象的東西,而對象是具體的,對象具有它隸屬類的所有屬性,包括靜態的和動態的。2024年8月12日星期一9
每個對象都有自己的存儲空間,可容納其他對象,或者說通過封裝現有的對象,可以產生新型對象。因此,儘管對象的概念非常簡單,但是經過封裝以後卻可以在程式中達到任意高的複雜程度。
每個對象都屬於某個類。根據語法,每個對象都是某個“類”的實例。一個類的最重要的特徵就是“能將什麼消息發給它?”,也就是類本身有哪些操作。面向對象程式設計就是設計好相關的類,類中有靜態的域,和動態的方法。繼承性繼承是在類、子類、以及對象之間自動地共用屬性和方法的機制。類的上層可以有父類、下層可以有子類,形成一種層次結構。一個類將直接繼承其父類的屬性和行為2024年8月12日星期一10,而且繼承還具有傳遞性,因此,它還將間接繼承所有祖先類的屬性和行為。
繼承最主要的優點是重複使用性,通過繼承可以無限繁衍出更多的類,這樣的結果可讓軟體的開發加速,同時可達到程式共用的好處。通過繼承可以直接繼承系統提供的或他人寫作的類,並加以改寫,進而得到功能的不斷擴充。
繼承的另一個優點是在於介面的一致性。當超類繁衍出許多子類時,它的行為介面通過繼承可以傳給其所有子類。因此可以通過統一的行為介面去訪問不同的子類對象的方法,但不同子類中行為的具體實現可能時不一樣的。2024年8月12日星期一11多態性多態是指在表示特定功能時,有多種不同的形態或實現方法。常見的多態形式有兩種:方法的重載:即在同一個類中某個方法有多種形態,其方法名相同,但參數不同,所以也稱參數多態。方法的覆蓋:在子類中重新定義一個與父類有相同形態的方法,這樣,在子類中將覆蓋從父類繼承來的那個方法。多態為描述客觀事物提供了極大的能動性。參數多態提供了方法的多種使用形態,方便使用者的調用;而覆蓋多態則使得用戶可以用同樣的方式對待不同的對象,不同的對象可以用它們自己的方式回應同一消息。用戶可以通過父類去引用子類的對象,執行方法時則表現出每個子類對象各自的行為。
2024年8月12日星期一12抽象性這裏的抽象有兩個層次的含義,一是體現在類的層次設計中,高層類是底層類的抽象表述。類層次設計體現著不斷抽象的過程。第二體現在類與對象之間的關係上,類是一個抽象的概念,而對象是具體的。面向對象編程的核心是設計類,但實際運行操作的是對象。類是對象的範本,對象的創建是以類為基礎。同一類創建的對象具有共同的屬性,但屬性值不同。2024年8月12日星期一131.2程式設計語言概述Java語言有下麵一些特點:簡單性Java語言是一種面向對象的語言,它通過提供最基本的方法來完成指定的任務,只需理解一些基本的概念,就可以用它編寫出適合於各種情況的應用程式。Java略去了運算符重載、多重繼承等模糊的概念,並且通過實現自動垃圾收集大大簡化了程式設計者的記憶體管理工作。另外,Java也適合於在小型機上運行。
1.2.1Java語言的特色2024年8月12日星期一14面向對象Java語言的設計集中於對象及其介面,它提供了簡單的類機制以及動態的介面型。對象中封裝了它的狀態變數以及相應的方法,實現了模組化和資訊隱藏;而類則提供了一類對象的原型,並且通過繼承機制,子類可以使用父類所提供的方法,實現了代碼的複用。分佈性
Java是面向網路的語言。通過它提供的類庫可以處理TCP/IP協議,用戶可以通過URL地址在網路上很方便地訪問其他對象。
2024年8月12日星期一15魯棒性Java在編譯和運行程式時,都要對可能出現的問題進行檢查,以消除錯誤的產生。它提供自動垃圾收集來進行記憶體管理,防止程式員在管理記憶體時容易產生的錯誤。通過集成的面向對象的例外處理機制,在編譯時,Java提示出可能出現但未被處理的例外,幫助程式員正確地進行選擇以防止系統的崩潰。另外,Java在編譯時還可捕獲類型聲明中的許多常見錯誤,防止動態運行時不匹配問題的出現。2024年8月12日星期一16安全性
用於網路、分佈環境下的Java必須要防止病毒的入侵。Java不支持指針,一切對內存的訪問都必須通過對象的實例變數來實現,這樣就防止程式員使用“特洛伊”木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產生的錯誤。體系結構中立
Java解釋器生成與體系結構無關的位元組碼指令,只要安裝了Java運行時系統,Java程式就可在任意的處理器上運行。這些位元組碼指令對應於Java虛擬機中的表示,Java解釋器得到位元組碼後,對它進行轉換,使之能夠在不同的平臺運行。
2024年8月12日星期一17可移植性
與平臺無關的特性使Java程式可以方便地被移植到網路上的不同機器。同時,Java的類庫中也實現了與不同平臺的介面,使這些類庫可以移植。另外,Java編譯器是由Java語言實現的,Java運行時系統由標準C實現,這使得Java系統本身也具有可移植性。解釋執行Java解釋器直接對Java位元組碼進行解釋執行。位元組碼本身攜帶了許多編譯時資訊,使得連接過程更加簡單。高性能和其他解釋執行的語言如BASIC、TCL不同,Java位元組碼的設計使之能很容易地直接轉換成對應於特定CPU的機器碼,從而得到較高的性能。2024年8月12日星期一18多線程
多線程機制使應用程式能夠並行執行,而且同步機制保證了對共用數據的正確操作。通過使用多線程,程式設計者可以分別用不同的線程完成特定的行為,而不需要採用全局的事件迴圈機制,這樣就很容易地實現網路上的即時交互行為。動態性
Java的設計使它適合於一個不斷發展的環境。在類庫中可以自由地加入新的方法和實例變數而不會影響用戶程式的執行。並且Java通過介面來支持多重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。2024年8月12日星期一191.2.2Java的應用背景Java語言對軟體開發技術的影響Java語言將對未來軟體的開發產生影響,可從如下幾個方面考慮:軟體的需求分析:可將用戶的需求進行動態的、可視化描述,以提供設計者更加直觀的要求。而用戶的需求是各色各樣的,不受地區、行業、部門、愛好的影響,都可以用Java語言描述清楚。軟體的開發方法:由於Java語言的面向目標的特性,所以完全可以用面向對象的技術與方法來開發,這是符合最新的軟體開發規範要求的。
2024年8月12日星期一20Java語言的動畫效果遠比GUI技術更加逼真,尤其是利用Internet提供的巨大動畫資源空間,可以共用全世界的動態畫面的資源。軟體最終產品:用Java語言開發的軟體可以具有可視化、可聽化、可操作化的交互、動畫與動作,要它停就停,要它繼續就繼續,而這是在電影與電視播放過程中難以做到的。其他:使用Java語言對開發效益、開發價值都有比較明顯的影響。
2024年8月12日星期一21Java語言的應用前景
Java語言有著廣泛的應用前景,大體上可以從以下幾個方面來考慮其應用:所有面向對象的應用開發,包括面向對象的事件描述、處理、綜合等。計算過程的可視化、可操作化的軟體的開發。動態畫面的設計,包括圖形圖像的調用。交互操作的設計(選擇交互、定向交互、控制流程等)。Internet的系統管理功能模組的設計,包括Web頁面的動態設計、管理和交互操作設計等。Intranet(企業內部網)上的軟體開發(直接面向企業內部用戶的軟體)。與各類資料庫連接查詢的SQL語句實現。其他應用類型的程式。2024年8月12日星期一221.3程式設計語言簡介
用Java可寫兩種類型的程式:小程式(又叫JavaApplet)和應用程式(Javaapplicatian)。
小程式是嵌入在HTML文檔種的Java程式;而Java應用程式是從命令行運行的程式。對Java而言,Java小程式的大小和複雜性都沒有限制。由於WWW使小程式的發佈十分便利,因此小程式更適合作為Internet上的應用程式。
應用程式(JavaApplication)是可以獨立運行的Java程式,有Java解釋器控制執行。Applet則不能獨立運行,而是被嵌入到Web頁中,有Java相容流覽器控制執行。
2024年8月12日星期一23
Java程式在編譯後生成的不是某種CPU的指令碼,而是Java語言特有的位元組代碼。Java位元組代碼運行在Java虛擬機上。
每一個操作系統的Java解釋器是不同的,但實現Java虛擬機時相同的,這就是Java語言與平臺無關的關鍵所在。Java虛擬機由五部分組成:一組指令集、一組寄存器、一個堆疊、一個無用記憶體單元收集器、一個方法區域,這五個部分是Java虛擬機的邏輯抽象成分,不倚賴於任何實現技術或組織,但是它們的功能必須在真實機器上以某種來實現。Java虛擬機記憶體區域不倚賴實現記憶體的位置,也不要求連續,但要求邏輯的長度固定。
1.3.1Java的虛擬機2024年8月12日星期一24
Java虛擬機支持240多個位元組代碼,每個位元組代碼執行一種基本的CPU運算。Java語言指令集相當於Java語言程式的“組合語言”,Java語言指令集的一條指令有一個操作碼、領個或多個運算元。運算元指定實施的操作,運算元是操作碼所需要的參數。Java語言的操作碼均為一個位元組長,運算元沒有限制。
Java虛擬機的寄存器用於保存機器的運行狀態。Java虛擬機寄存器有四種:Java語言程式計數器;指向運算元棧頂端的指針;指向當前執行方法的執行環境的指針;指向當前執行方法局部變數的區第一個變數的指針。Java虛擬機是用堆疊來處理數據傳遞的,它不定義或使用寄存器來傳遞或接受參數。目的是為了保證指令集的簡潔性和實現時的高效性。2024年8月12日星期一25
Java虛擬機的堆疊有三個區域:局部變數區、執行環境區和運算元區。Java虛擬機的堆疊是運行時刻動態分配的對象存儲區域。Java語言可以進行自動的無須記憶體單元的收集,程式無須顯示釋放佔有的記憶體空間,無須記憶體單元自動回收的演算法倚賴於虛擬機最終實現的硬體環境。
Java虛擬機的方法區是編譯後的代碼區域,包含方法代碼、符號表等。
2024年8月12日星期一261.3.2Java的運行環境的配置Java不僅提供了一個豐富的語言和運行環境,而且還提供了一個免費的Java開發工具集(JavaDevelopersKits,簡稱JDK,也稱SDK)。編程人員和最終用戶可以利用這些工具來開發Java程式或調用Java內容。
SUN的Java不僅提了一個豐富的語言和運行環境,而且還提了一個免費的Java開發工具集(SDK)。開發人員和最終用戶可以利用這個工具來開發Java程式。SDK簡單易學,可以通過任何文本編輯器編寫Java原始檔案,然後在DOS狀況下利通過javac命令將Java根源程式編譯成位元組碼,通過Java命令來執行編譯後的Java檔。
2024年8月12日星期一27SDK的另一個顯著特點是隨著Java(J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java應用開發非常困難,不能進行複雜的Java軟體開發,也不利於團體協同開發。建立Java開發環境JDK開發環境中常用工具介紹在Java環境中的Java工具主要有:*appletviewer
小應用程式流覽器*java解釋器*javac
編譯器*javah
頭檔生成器*javadocAPI
文檔生成器*javap
類檔反彙編器*sdbJava語言調試器2024年8月12日星期一281.3.1Java的虛擬機目前可供開發人員選擇得Java語言開發工具有很多,例如:Sun公司的SDK(命令行方式的)Java語言編輯器,用Java語言開發的圖形化介面的JavaWorkShop,Symmatec公司的VisualCafé,微軟公司的VisualJ++,Borland公司的JBuilder等等。開發人員選擇開發工具可以根據以下原則:開發介面是否友好,編譯效率是否高,是否有可視化的調試器,能否在流覽器中調試Java語言小程式,能否為使用者完成一些重複的勞動等。2024年8月12日星期一291.4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/ZHHX 001-2023木本花卉水肥一体化智能滴灌栽培指南
- 儿童防拐骗安全教育
- 医学视觉呈现与学科前沿
- 2025西安音乐学院辅导员考试试题及答案
- 2025赣州师范高等专科学校辅导员考试试题及答案
- 2025绵阳飞行职业学院辅导员考试试题及答案
- 2025福州英华职业学院辅导员考试试题及答案
- T/ZGM 001-2021家用和类似用途饮用水净化装置用纳滤膜元件
- 健康体检课件下载
- 健康体检课件2021
- 六年级数学质量分析PPT
- 土地平整、池塘推土、杂草灌木丛及树木清除施工方案
- 眼镜镜架的整形专业培训2课件
- 生物质材料及应用淀粉
- 下线仪式串词策划
- 通用长期供销合同范本
- 新版《药品管理法》解读课件
- 《社区治理研究国内外文献综述(1900字)》
- 2023浙江省学生艺术特长测试A级理论复习资料
- 建筑业企业资质职称人员相近专业认定目录
- 拟投入本项目的主要施工设备表
评论
0/150
提交评论