版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java語(yǔ)言概述
14八月202421.1程序設(shè)計(jì)語(yǔ)言概述
1.1.1計(jì)算機(jī)程序設(shè)計(jì)方法和語(yǔ)言隨著計(jì)算機(jī)硬件與通訊技術(shù)的發(fā)展,計(jì)算機(jī)應(yīng)用領(lǐng)域越來(lái)越廣泛,應(yīng)用規(guī)模也越來(lái)越大,程序設(shè)計(jì)不再是一、兩個(gè)程序員可完成的任務(wù),在這種情況下編寫(xiě)程序不再片面追求高效率,而是綜合考慮程序的可靠性、可擴(kuò)展性、可重用性和可理解性等因素。
程序設(shè)計(jì)方法是獨(dú)立于具體程序設(shè)計(jì)語(yǔ)言的一門(mén)技術(shù)。由于程序設(shè)計(jì)通常離不開(kāi)程序設(shè)計(jì)語(yǔ)言作為工具,所以容易混淆程序設(shè)計(jì)方法與程序設(shè)計(jì)語(yǔ)言的概念。程序設(shè)計(jì)語(yǔ)言的設(shè)計(jì)目的主要是為了支持某種程序設(shè)計(jì)方法。14八月20243早期的程序設(shè)計(jì)早期的高級(jí)程序設(shè)計(jì)語(yǔ)言有FORTROM、COBOL、BASIC等。這一時(shí)期由于追求程序的高效率,程序員過(guò)份依賴(lài)技巧與天份,不太注重程序的結(jié)構(gòu),。一個(gè)典型問(wèn)題是程序中的控制隨意跳轉(zhuǎn),即不加限制地使用goto語(yǔ)句,這樣的程序?qū)﹂喿x者來(lái)說(shuō)是難以理解的,程序員也難以修改程序。結(jié)構(gòu)化的程序設(shè)計(jì)隨著程序規(guī)模與復(fù)雜性的不斷增長(zhǎng),20世紀(jì)60年代誕生了結(jié)構(gòu)化程序設(shè)計(jì)方法。結(jié)構(gòu)化程序設(shè)計(jì)方法的主要技術(shù)是自頂向下、逐步求精,采用單入口/單輸出的控制結(jié)構(gòu)。這一程序設(shè)計(jì)方法的代表語(yǔ)言是Pascal、C、Ado等。14八月20244
自頂向下是一種分解問(wèn)題的技術(shù),與控制結(jié)構(gòu)有關(guān)。逐步求精指對(duì)結(jié)構(gòu)化程序進(jìn)行分解,最終使其成為三種基本控制結(jié)構(gòu)的組合。結(jié)構(gòu)化程序設(shè)計(jì)的結(jié)果是一個(gè)程序最終由若干過(guò)程組成,每一個(gè)過(guò)程完成一個(gè)明確的功能。面向?qū)ο蟪绦蛟O(shè)計(jì)
雖然結(jié)構(gòu)化程序設(shè)計(jì)提高了軟件生產(chǎn)率和軟件質(zhì)量,但隨著程序規(guī)模與復(fù)雜性的增長(zhǎng),程序中的數(shù)據(jù)結(jié)構(gòu)變得與這些數(shù)據(jù)上的操作同樣重要。在大型結(jié)構(gòu)化程序中,一個(gè)數(shù)據(jù)結(jié)構(gòu)可能由許多個(gè)過(guò)程來(lái)處理,修改數(shù)據(jù)結(jié)構(gòu)將影響到所有相關(guān)的過(guò)程。在由幾百個(gè)過(guò)程組成的成千上萬(wàn)行的結(jié)構(gòu)化程序中,這種情況變得相當(dāng)麻煩并且容易產(chǎn)生錯(cuò)誤。
14八月20245
20世紀(jì)80年代興起的面向?qū)ο蟪绦蛟O(shè)計(jì)方法在結(jié)構(gòu)化程序設(shè)計(jì)的基礎(chǔ)上提出了一種新的設(shè)計(jì)思路,最重要的改變是程序圍繞被操作的數(shù)據(jù)來(lái)設(shè)計(jì),而不是圍繞操作本身。面向?qū)ο蟪绦蛟O(shè)計(jì)以類(lèi)作為構(gòu)造程序的基本單位,具有封裝、數(shù)據(jù)抽象、繼承、多態(tài)化等特點(diǎn)。較有影響的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言有Simula、C++、Java等。Java語(yǔ)言是在C++語(yǔ)言基礎(chǔ)上發(fā)展起來(lái)的一種適合分布式計(jì)算的新型面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,也是目前推廣最快的程序設(shè)計(jì)語(yǔ)言。Java語(yǔ)言將面向?qū)ο蟆⑵脚_(tái)無(wú)關(guān)性、穩(wěn)定性與安全性、多線程等特征集于一身,為用戶(hù)提供了一個(gè)良好的程序設(shè)計(jì)環(huán)境,特別適合因特網(wǎng)的應(yīng)用開(kāi)發(fā)。與當(dāng)前迅速發(fā)展的因特網(wǎng)應(yīng)用緊密結(jié)合是Java語(yǔ)言成功的關(guān)鍵所在。
14八月202461.1.2
計(jì)算機(jī)程序設(shè)計(jì)方法和語(yǔ)言面向?qū)ο笈c面向過(guò)程的區(qū)別
早期的編程語(yǔ)言如Fortran語(yǔ)言和C語(yǔ)言基本上都是面向過(guò)程的語(yǔ)言,主要是采用數(shù)學(xué)語(yǔ)言方式編程的語(yǔ)言,其編程的主要思路專(zhuān)注于算法的實(shí)現(xiàn)。
傳統(tǒng)的面向過(guò)程的編程在描述問(wèn)題時(shí),由兩部分組成:數(shù)據(jù):描述實(shí)體狀態(tài)的數(shù)據(jù)結(jié)構(gòu);過(guò)程:操作這些狀態(tài)數(shù)據(jù)的程序和步驟。
面向過(guò)程編程的一個(gè)顯著特點(diǎn)是數(shù)據(jù)與程序的分開(kāi)。數(shù)據(jù)是靜止的東西,不會(huì)自行變化,必須通過(guò)過(guò)程操作來(lái)改變數(shù)據(jù),因此,函數(shù)調(diào)用在面向過(guò)程編程中被大量使用。14八月20247
針對(duì)程序結(jié)構(gòu)不清晰而無(wú)法維護(hù)改進(jìn)的局面。面向?qū)ο缶幊烫岢隽艘环N全新的思路,讓計(jì)算機(jī)語(yǔ)言結(jié)構(gòu)像人類(lèi)思維方式一樣簡(jiǎn)單和清晰。面向?qū)ο蟮能浖_(kāi)發(fā)中將世界上的事物均看成對(duì)象,任一對(duì)象有兩個(gè)特征:行為與狀態(tài)。每個(gè)對(duì)象可以通過(guò)自身的行為來(lái)改變自己的狀態(tài)。在面向?qū)ο蟮氖澜缰校ㄟ^(guò)對(duì)象間的協(xié)作與交互來(lái)運(yùn)作。由于將對(duì)象的操作封閉在對(duì)象內(nèi),外部要與對(duì)象進(jìn)行交互只能通過(guò)給對(duì)象發(fā)送“消息”,這個(gè)消息實(shí)際上就是調(diào)用對(duì)象的某個(gè)行為方法,消息中還包括方法的參數(shù)。14八月20248面向?qū)ο蟪绦蛟O(shè)計(jì)的特性封裝性
面向?qū)ο蟮牡谝粋€(gè)原則是把數(shù)據(jù)和該數(shù)據(jù)的操作都封裝在一個(gè)類(lèi)中,比如說(shuō)筆記本電腦就是一個(gè)類(lèi)。筆記本電腦這個(gè)類(lèi)有許多屬性,有些是靜態(tài)的(數(shù)據(jù)),比如:顯示屏的亮度,本身的重量;有些是動(dòng)態(tài)的(對(duì)數(shù)據(jù)的操作),比如:可以按下組合鍵“ctrl+F4”或“ctrl+F5”來(lái)調(diào)整顯示器的亮度,可以卸掉它的外掛光驅(qū)來(lái)減輕它的重量。
對(duì)象是類(lèi)的一個(gè)實(shí)例化結(jié)果,對(duì)象具有類(lèi)所描述的所有的屬性以及方法。比如不同品牌、不同樣式的筆記本電腦之間的共同屬性就是它們所屬的類(lèi)——筆記本電腦類(lèi)的屬性。只不過(guò)類(lèi)是抽象的東西,而對(duì)象是具體的,對(duì)象具有它隸屬類(lèi)的所有屬性,包括靜態(tài)的和動(dòng)態(tài)的。14八月20249
每個(gè)對(duì)象都有自己的存儲(chǔ)空間,可容納其他對(duì)象,或者說(shuō)通過(guò)封裝現(xiàn)有的對(duì)象,可以產(chǎn)生新型對(duì)象。因此,盡管對(duì)象的概念非常簡(jiǎn)單,但是經(jīng)過(guò)封裝以后卻可以在程序中達(dá)到任意高的復(fù)雜程度。
每個(gè)對(duì)象都屬于某個(gè)類(lèi)。根據(jù)語(yǔ)法,每個(gè)對(duì)象都是某個(gè)“類(lèi)”的實(shí)例。一個(gè)類(lèi)的最重要的特征就是“能將什么消息發(fā)給它?”,也就是類(lèi)本身有哪些操作。面向?qū)ο蟪绦蛟O(shè)計(jì)就是設(shè)計(jì)好相關(guān)的類(lèi),類(lèi)中有靜態(tài)的域,和動(dòng)態(tài)的方法。繼承性繼承是在類(lèi)、子類(lèi)、以及對(duì)象之間自動(dòng)地共享屬性和方法的機(jī)制。類(lèi)的上層可以有父類(lèi)、下層可以有子類(lèi),形成一種層次結(jié)構(gòu)。一個(gè)類(lèi)將直接繼承其父類(lèi)的屬性和行為14八月202410,而且繼承還具有傳遞性,因此,它還將間接繼承所有祖先類(lèi)的屬性和行為。
繼承最主要的優(yōu)點(diǎn)是重復(fù)使用性,通過(guò)繼承可以無(wú)限繁衍出更多的類(lèi),這樣的結(jié)果可讓軟件的開(kāi)發(fā)加速,同時(shí)可達(dá)到程序共享的好處。通過(guò)繼承可以直接繼承系統(tǒng)提供的或他人寫(xiě)作的類(lèi),并加以改寫(xiě),進(jìn)而得到功能的不斷擴(kuò)充。
繼承的另一個(gè)優(yōu)點(diǎn)是在于接口的一致性。當(dāng)超類(lèi)繁衍出許多子類(lèi)時(shí),它的行為接口通過(guò)繼承可以傳給其所有子類(lèi)。因此可以通過(guò)統(tǒng)一的行為接口去訪問(wèn)不同的子類(lèi)對(duì)象的方法,但不同子類(lèi)中行為的具體實(shí)現(xiàn)可能時(shí)不一樣的。14八月202411多態(tài)性多態(tài)是指在表示特定功能時(shí),有多種不同的形態(tài)或?qū)崿F(xiàn)方法。常見(jiàn)的多態(tài)形式有兩種:方法的重載:即在同一個(gè)類(lèi)中某個(gè)方法有多種形態(tài),其方法名相同,但參數(shù)不同,所以也稱(chēng)參數(shù)多態(tài)。方法的覆蓋:在子類(lèi)中重新定義一個(gè)與父類(lèi)有相同形態(tài)的方法,這樣,在子類(lèi)中將覆蓋從父類(lèi)繼承來(lái)的那個(gè)方法。多態(tài)為描述客觀事物提供了極大的能動(dòng)性。參數(shù)多態(tài)提供了方法的多種使用形態(tài),方便使用者的調(diào)用;而覆蓋多態(tài)則使得用戶(hù)可以用同樣的方式對(duì)待不同的對(duì)象,不同的對(duì)象可以用它們自己的方式響應(yīng)同一消息。用戶(hù)可以通過(guò)父類(lèi)去引用子類(lèi)的對(duì)象,執(zhí)行方法時(shí)則表現(xiàn)出每個(gè)子類(lèi)對(duì)象各自的行為。
14八月202412抽象性這里的抽象有兩個(gè)層次的含義,一是體現(xiàn)在類(lèi)的層次設(shè)計(jì)中,高層類(lèi)是底層類(lèi)的抽象表述。類(lèi)層次設(shè)計(jì)體現(xiàn)著不斷抽象的過(guò)程。第二體現(xiàn)在類(lèi)與對(duì)象之間的關(guān)系上,類(lèi)是一個(gè)抽象的概念,而對(duì)象是具體的。面向?qū)ο缶幊痰暮诵氖窃O(shè)計(jì)類(lèi),但實(shí)際運(yùn)行操作的是對(duì)象。類(lèi)是對(duì)象的模板,對(duì)象的創(chuàng)建是以類(lèi)為基礎(chǔ)。同一類(lèi)創(chuàng)建的對(duì)象具有共同的屬性,但屬性值不同。14八月2024131.2程序設(shè)計(jì)語(yǔ)言概述Java語(yǔ)言有下面一些特點(diǎn):簡(jiǎn)單性Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,它通過(guò)提供最基本的方法來(lái)完成指定的任務(wù),只需理解一些基本的概念,就可以用它編寫(xiě)出適合于各種情況的應(yīng)用程序。Java略去了運(yùn)算符重載、多重繼承等模糊的概念,并且通過(guò)實(shí)現(xiàn)自動(dòng)垃圾收集大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作。另外,Java也適合于在小型機(jī)上運(yùn)行。
1.2.1Java語(yǔ)言的特色14八月202414面向?qū)ο驤ava語(yǔ)言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類(lèi)機(jī)制以及動(dòng)態(tài)的接口型。對(duì)象中封裝了它的狀態(tài)變量以及相應(yīng)的方法,實(shí)現(xiàn)了模塊化和信息隱藏;而類(lèi)則提供了一類(lèi)對(duì)象的原型,并且通過(guò)繼承機(jī)制,子類(lèi)可以使用父類(lèi)所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。分布性
Java是面向網(wǎng)絡(luò)的語(yǔ)言。通過(guò)它提供的類(lèi)庫(kù)可以處理TCP/IP協(xié)議,用戶(hù)可以通過(guò)URL地址在網(wǎng)絡(luò)上很方便地訪問(wèn)其它對(duì)象。
14八月202415魯棒性Java在編譯和運(yùn)行程序時(shí),都要對(duì)可能出現(xiàn)的問(wèn)題進(jìn)行檢查,以消除錯(cuò)誤的產(chǎn)生。它提供自動(dòng)垃圾收集來(lái)進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。通過(guò)集成的面向?qū)ο蟮睦馓幚頇C(jī)制,在編譯時(shí),Java提示出可能出現(xiàn)但未被處理的例外,幫助程序員正確地進(jìn)行選擇以防止系統(tǒng)的崩潰。另外,Java在編譯時(shí)還可捕獲類(lèi)型聲明中的許多常見(jiàn)錯(cuò)誤,防止動(dòng)態(tài)運(yùn)行時(shí)不匹配問(wèn)題的出現(xiàn)。14八月202416安全性
用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病毒的入侵。Java不支持指針,一切對(duì)內(nèi)存的訪問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止程序員使用“特洛伊”木馬等欺騙手段訪問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。體系結(jié)構(gòu)中立
Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝了Java運(yùn)行時(shí)系統(tǒng),Java程序就可在任意的處理器上運(yùn)行。這些字節(jié)碼指令對(duì)應(yīng)于Java虛擬機(jī)中的表示,Java解釋器得到字節(jié)碼后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。
14八月202417可移植性
與平臺(tái)無(wú)關(guān)的特性使Java程序可以方便地被移植到網(wǎng)絡(luò)上的不同機(jī)器。同時(shí),Java的類(lèi)庫(kù)中也實(shí)現(xiàn)了與不同平臺(tái)的接口,使這些類(lèi)庫(kù)可以移植。另外,Java編譯器是由Java語(yǔ)言實(shí)現(xiàn)的,Java運(yùn)行時(shí)系統(tǒng)由標(biāo)準(zhǔn)C實(shí)現(xiàn),這使得Java系統(tǒng)本身也具有可移植性。解釋執(zhí)行Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時(shí)信息,使得連接過(guò)程更加簡(jiǎn)單。高性能和其它解釋執(zhí)行的語(yǔ)言如BASIC、TCL不同,Java字節(jié)碼的設(shè)計(jì)使之能很容易地直接轉(zhuǎn)換成對(duì)應(yīng)于特定CPU的機(jī)器碼,從而得到較高的性能。14八月202418多線程
多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。通過(guò)使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為。動(dòng)態(tài)性
Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類(lèi)庫(kù)中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶(hù)程序的執(zhí)行。并且Java通過(guò)接口來(lái)支持多重繼承,使之比嚴(yán)格的類(lèi)繼承具有更靈活的方式和擴(kuò)展性。14八月2024191.2.2Java的應(yīng)用背景Java語(yǔ)言對(duì)軟件開(kāi)發(fā)技術(shù)的影響Java語(yǔ)言將對(duì)未來(lái)軟件的開(kāi)發(fā)產(chǎn)生影響,可從如下幾個(gè)方面考慮:軟件的需求分析:可將用戶(hù)的需求進(jìn)行動(dòng)態(tài)的、可視化描述,以提供設(shè)計(jì)者更加直觀的要求。而用戶(hù)的需求是各色各樣的,不受地區(qū)、行業(yè)、部門(mén)、愛(ài)好的影響,都可以用Java語(yǔ)言描述清楚。軟件的開(kāi)發(fā)方法:由于Java語(yǔ)言的面向目標(biāo)的特性,所以完全可以用面向?qū)ο蟮募夹g(shù)與方法來(lái)開(kāi)發(fā),這是符合最新的軟件開(kāi)發(fā)規(guī)范要求的。
14八月202420Java語(yǔ)言的動(dòng)畫(huà)效果遠(yuǎn)比GUI技術(shù)更加逼真,尤其是利用Internet提供的巨大動(dòng)畫(huà)資源空間,可以共享全世界的動(dòng)態(tài)畫(huà)面的資源。軟件最終產(chǎn)品:用Java語(yǔ)言開(kāi)發(fā)的軟件可以具有可視化、可聽(tīng)化、可操作化的交互、動(dòng)畫(huà)與動(dòng)作,要它停就停,要它繼續(xù)就繼續(xù),而這是在電影與電視播放過(guò)程中難以做到的。其它:使用Java語(yǔ)言對(duì)開(kāi)發(fā)效益、開(kāi)發(fā)價(jià)值都有比較明顯的影響。
14八月202421Java語(yǔ)言的應(yīng)用前景
Java語(yǔ)言有著廣泛的應(yīng)用前景,大體上可以從以下幾個(gè)方面來(lái)考慮其應(yīng)用:所有面向?qū)ο蟮膽?yīng)用開(kāi)發(fā),包括面向?qū)ο蟮氖录枋觥⑻幚?、綜合等。計(jì)算過(guò)程的可視化、可操作化的軟件的開(kāi)發(fā)。動(dòng)態(tài)畫(huà)面的設(shè)計(jì),包括圖形圖像的調(diào)用。交互操作的設(shè)計(jì)(選擇交互、定向交互、控制流程等)。Internet的系統(tǒng)管理功能模塊的設(shè)計(jì),包括Web頁(yè)面的動(dòng)態(tài)設(shè)計(jì)、管理和交互操作設(shè)計(jì)等。Intranet(企業(yè)內(nèi)部網(wǎng))上的軟件開(kāi)發(fā)(直接面向企業(yè)內(nèi)部用戶(hù)的軟件)。與各類(lèi)數(shù)據(jù)庫(kù)連接查詢(xún)的SQL語(yǔ)句實(shí)現(xiàn)。其它應(yīng)用類(lèi)型的程序。14八月2024221.3程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介
用Java可寫(xiě)兩種類(lèi)型的程序:小程序(又叫JavaApplet)和應(yīng)用程序(Javaapplicatian)。
小程序是嵌入在HTML文檔種的Java程序;而Java應(yīng)用程序是從命令行運(yùn)行的程序。對(duì)Java而言,Java小程序的大小和復(fù)雜性都沒(méi)有限制。由于WWW使小程序的發(fā)布十分便利,因此小程序更適合作為Internet上的應(yīng)用程序。
應(yīng)用程序(JavaApplication)是可以獨(dú)立運(yùn)行的Java程序,有Java解釋器控制執(zhí)行。Applet則不能獨(dú)立運(yùn)行,而是被嵌入到Web頁(yè)中,有Java兼容瀏覽器控制執(zhí)行。
14八月202423
Java程序在編譯后生成的不是某種CPU的指令碼,而是Java語(yǔ)言特有的字節(jié)代碼。Java字節(jié)代碼運(yùn)行在Java虛擬機(jī)上。
每一個(gè)操作系統(tǒng)的Java解釋器是不同的,但實(shí)現(xiàn)Java虛擬機(jī)時(shí)相同的,這就是Java語(yǔ)言與平臺(tái)無(wú)關(guān)的關(guān)鍵所在。Java虛擬機(jī)由五部分組成:一組指令集、一組寄存器、一個(gè)堆棧、一個(gè)無(wú)用內(nèi)存單元收集器、一個(gè)方法區(qū)域,這五個(gè)部分是Java虛擬機(jī)的邏輯抽象成分,不倚賴(lài)于任何實(shí)現(xiàn)技術(shù)或組織,但是它們的功能必須在真實(shí)機(jī)器上以某種來(lái)實(shí)現(xiàn)。Java虛擬機(jī)內(nèi)存區(qū)域不倚賴(lài)實(shí)現(xiàn)內(nèi)存的位置,也不要求連續(xù),但要求邏輯的長(zhǎng)度固定。
1.3.1Java的虛擬機(jī)14八月202424
Java虛擬機(jī)支持240多個(gè)字節(jié)代碼,每個(gè)字節(jié)代碼執(zhí)行一種基本的CPU運(yùn)算。Java語(yǔ)言指令集相當(dāng)于Java語(yǔ)言程序的“匯編語(yǔ)言”,Java語(yǔ)言指令集的一條指令有一個(gè)操作碼、領(lǐng)個(gè)或多個(gè)操作數(shù)。操作數(shù)指定實(shí)施的操作,操作數(shù)是操作碼所需要的參數(shù)。Java語(yǔ)言的操作碼均為一個(gè)字節(jié)長(zhǎng),操作數(shù)沒(méi)有限制。
Java虛擬機(jī)的寄存器用于保存機(jī)器的運(yùn)行狀態(tài)。Java虛擬機(jī)寄存器有四種:Java語(yǔ)言程序計(jì)數(shù)器;指向操作數(shù)棧頂端的指針;指向當(dāng)前執(zhí)行方法的執(zhí)行環(huán)境的指針;指向當(dāng)前執(zhí)行方法局部變量的區(qū)第一個(gè)變量的指針。Java虛擬機(jī)是用堆棧來(lái)處理數(shù)據(jù)傳遞的,它不定義或使用寄存器來(lái)傳遞或接受參數(shù)。目的是為了保證指令集的簡(jiǎn)潔性和實(shí)現(xiàn)時(shí)的高效性。14八月202425
Java虛擬機(jī)的堆棧有三個(gè)區(qū)域:局部變量區(qū)、執(zhí)行環(huán)境區(qū)和操作數(shù)區(qū)。Java虛擬機(jī)的堆棧是運(yùn)行時(shí)刻動(dòng)態(tài)分配的對(duì)象存儲(chǔ)區(qū)域。Java語(yǔ)言可以進(jìn)行自動(dòng)的無(wú)須內(nèi)存單元的收集,程序無(wú)須顯示釋放占有的內(nèi)存空間,無(wú)須內(nèi)存單元自動(dòng)回收的算法倚賴(lài)于虛擬機(jī)最終實(shí)現(xiàn)的硬件環(huán)境。
Java虛擬機(jī)的方法區(qū)是編譯后的代碼區(qū)域,包含方法代碼、符號(hào)表等。
14八月2024261.3.2Java的運(yùn)行環(huán)境的配置Java不僅提供了一個(gè)豐富的語(yǔ)言和運(yùn)行環(huán)境,而且還提供了一個(gè)免費(fèi)的Java開(kāi)發(fā)工具集(JavaDevelopersKits,簡(jiǎn)稱(chēng)JDK,也稱(chēng)SDK)。編程人員和最終用戶(hù)可以利用這些工具來(lái)開(kāi)發(fā)Java程序或調(diào)用Java內(nèi)容。
SUN的Java不僅提了一個(gè)豐富的語(yǔ)言和運(yùn)行環(huán)境,而且還提了一個(gè)免費(fèi)的Java開(kāi)發(fā)工具集(SDK)。開(kāi)發(fā)人員和最終用戶(hù)可以利用這個(gè)工具來(lái)開(kāi)發(fā)Java程序。SDK簡(jiǎn)單易學(xué),可以通過(guò)任何文本編輯器編寫(xiě)Java源文件,然后在DOS狀況下利通過(guò)javac命令將Java源程序編譯成字節(jié)碼,通過(guò)Java命令來(lái)執(zhí)行編譯后的Java文件。
14八月202427SDK的另一個(gè)顯著特點(diǎn)是隨著Java(J2EE、J2SE以及J2ME)版本的升級(jí)而升級(jí)。但它的缺點(diǎn)也是非常明顯的就是從事大規(guī)模企業(yè)級(jí)Java應(yīng)用開(kāi)發(fā)非常困難,不能進(jìn)行復(fù)雜的Java軟件開(kāi)發(fā),也不利于團(tuán)體協(xié)同開(kāi)發(fā)。建立Java開(kāi)發(fā)環(huán)境JDK開(kāi)發(fā)環(huán)境中常用工具介紹在Java環(huán)境中的Java工具主要有:*appletviewer
小應(yīng)用程序?yàn)g覽器*java解釋器*javac
編譯器*javah
頭文件生成器*javadocAPI
文檔生成器*javap
類(lèi)文件反匯編器*sdbJava語(yǔ)言調(diào)試器14八月2024281.3.1Java的虛擬機(jī)目前可供開(kāi)發(fā)人員選擇得Java語(yǔ)言開(kāi)發(fā)工具有很多,例如:Sun公司的SDK(命令行方式的)Java語(yǔ)言編輯器,用Java語(yǔ)言開(kāi)發(fā)的圖形化界面的JavaWorkShop,Symmatec公司的VisualCafé,微軟公司的VisualJ++,Borland公司的JBuilder等等。開(kāi)發(fā)人員選擇開(kāi)發(fā)工具可以根據(jù)以下原則:開(kāi)發(fā)界面是否友好,編譯效率是否高,是否有可視化的調(diào)試器,能否在瀏覽器中調(diào)試Java語(yǔ)言小程序,能否為使用者完成一些重復(fù)的勞動(dòng)等。14八月2024291.4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶電訊職業(yè)學(xué)院《班主任著作研讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江中醫(yī)藥大學(xué)《數(shù)字?jǐn)z影測(cè)量》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江建設(shè)職業(yè)技術(shù)學(xué)院《TIA技術(shù)及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州工業(yè)應(yīng)用技術(shù)學(xué)院《鋼結(jié)構(gòu)設(shè)計(jì)概述》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)通風(fēng)和消毒制度
- 情境劇本創(chuàng)作技巧及其作用
- DB2201T 66.3-2024 肉牛牛舍建設(shè)規(guī)范 第3部分:種母牛
- 生物學(xué)基礎(chǔ)與方法模板
- 人資行政戰(zhàn)略展望模板
- 七夕傳媒策略研討
- 2024年日語(yǔ)培訓(xùn)機(jī)構(gòu)市場(chǎng)供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2024年公安機(jī)關(guān)理論考試題庫(kù)附參考答案(基礎(chǔ)題)
- 歷史-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 2024年安全生產(chǎn)法律、法規(guī)、標(biāo)準(zhǔn)及其他要求清單
- 2023年高考文言文閱讀設(shè)題特點(diǎn)及備考策略
- 抗心律失常藥物臨床應(yīng)用中國(guó)專(zhuān)家共識(shí)
- 考級(jí)代理合同范文大全
- 2024解析:第三章物態(tài)變化-講核心(原卷版)
- DB32T 1590-2010 鋼管塑料大棚(單體)通 用技術(shù)要求
- 安全行車(chē)知識(shí)培訓(xùn)
- 2024年安徽省高校分類(lèi)對(duì)口招生考試數(shù)學(xué)試卷真題
評(píng)論
0/150
提交評(píng)論