版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章: Java開(kāi)始 ITjob就業(yè)培訓(xùn)第一章: Java開(kāi)始 ITjob就業(yè)培訓(xùn) PAGE 14 PAGE 15Evaluation Warning: The document was created with Spire.Doc for .NET.第一章: Jaava開(kāi)開(kāi)始學(xué)習(xí)目標(biāo)標(biāo)Javaa技術(shù)的的組成Javaa虛擬機(jī)機(jī)的主要要功能JAVAA內(nèi)存垃垃圾自動(dòng)動(dòng)回收機(jī)機(jī)制運(yùn)行代碼碼的步驟驟編寫(xiě)、編編譯并運(yùn)運(yùn)行簡(jiǎn)單單Javva應(yīng)用程程序Javaa歷史19911年,電電視機(jī),機(jī)機(jī)頂盒,錄錄象機(jī)的的開(kāi)發(fā)設(shè)設(shè)計(jì)需要要一種可可移植、方便、高效的的計(jì)算機(jī)機(jī)語(yǔ)言。為了滿(mǎn)滿(mǎn)足這種種需求,由由Sunn公司的
2、的Pattricck HHaugghtoon和Jammes Gosslinng領(lǐng)導(dǎo)導(dǎo)的技術(shù)術(shù)小組開(kāi)開(kāi)發(fā)了JJAVAA。上世紀(jì)九九十年代代中期,Sun推出了Sun Java Development Toolkits 1.0,簡(jiǎn)稱(chēng)JDK1.0。JDK1.0是一個(gè)功能強(qiáng)大的軟件包,可以用來(lái)開(kāi)發(fā)小應(yīng)用程序和多種操作系統(tǒng)(Sun Solaris,WindowsNt,Windows 95,Macintosh)的應(yīng)用程序。19988年Sunn推出Jaava 2 PPlattforrm,它它定義了了所有JJavaa技術(shù)的的概念和和標(biāo)準(zhǔn),即即包括已已經(jīng)實(shí)現(xiàn)現(xiàn)的技術(shù)術(shù)也包括括尚未實(shí)實(shí)現(xiàn)的技技術(shù);即即包括SSun的
3、的實(shí)現(xiàn)的的,也包包括其它它公司的的實(shí)現(xiàn)。目前,Java 2 SDK1.6是Java 2 Platform的最新定義。這個(gè)定義又可以細(xì)分為四個(gè)版本:標(biāo)準(zhǔn)版:J2SSE(Javva SSE),用用于開(kāi)發(fā)發(fā)普通的的小應(yīng)用用程序和和應(yīng)用程程序。它它是我們們這門(mén)課課程要講講述的內(nèi)內(nèi)容。(Javva SSE的體系系結(jié)構(gòu))企業(yè)版:J2EEE(Javva EEE),用用于企業(yè)業(yè)級(jí)應(yīng)用用。微型版:J2MME(Javva ME),用于于開(kāi)發(fā)移移動(dòng)電話(huà)話(huà),機(jī)頂頂盒,個(gè)個(gè)人數(shù)字字設(shè)備等等。JavaaCarrd:適用于于智能卡卡的Javva平臺(tái)。(Javva各版版本應(yīng)用用領(lǐng)域)Javaa技術(shù)概概述任何復(fù)雜雜的事物物都可
4、以以分解成成一些相相對(duì)簡(jiǎn)單單的組成成部分。Javva作為為一門(mén)豐豐富而復(fù)復(fù)雜的新新技術(shù),它它由下列列這些技技術(shù)層面面組成:Javaa編程語(yǔ)語(yǔ)言:定定義變量量、表達(dá)達(dá)式、邏邏輯控制制等基本本規(guī)則。Javaa類(lèi)庫(kù):Javva 軟軟件工具具包(SSDK)為為程序員員提供了了幾千個(gè)個(gè)類(lèi),包包括基本本的數(shù)學(xué)學(xué)函數(shù)、數(shù)組和和字符串串、窗口口,GUUI,I/OO,網(wǎng)絡(luò)絡(luò)等。Javaa運(yùn)行環(huán)環(huán)境:包包括Jaava字字節(jié)代碼碼的加載載器、校校驗(yàn)器以以及Jaava虛虛擬機(jī)。Javaa虛擬機(jī)機(jī):Jaava技技術(shù)出于于跨平臺(tái)臺(tái),可移移植的考考慮,沒(méi)沒(méi)有將程程序的源源代碼編編譯連接接成CPPU的指指令序列列,直接接交給
5、計(jì)計(jì)算機(jī)執(zhí)執(zhí)行。JJavaa技術(shù)在在不同的的硬件,不不同的操操作系統(tǒng)統(tǒng)之上,定定義了完完全相同同的支持持Javva程序序運(yùn)行的的虛擬計(jì)計(jì)算機(jī)。Javva源程程序被編編譯成字字節(jié)(bbytee)代碼碼,編譯譯后的文文件名后后綴是.cllasss文件,增加一段解說(shuō)在在Javva虛擬擬機(jī)上運(yùn)運(yùn)行。Javaa工具:編譯器器,注釋釋器(iinteerprreteer),文文檔生成成器等工工具。Javaa小應(yīng)用用程序:小應(yīng)用用程序(Applets)是一種貯存于WWW服務(wù)器上的用Java編寫(xiě)的程序,它通常由瀏覽器下載到客戶(hù)系統(tǒng)中,并通過(guò)支持Java運(yùn)行環(huán)境的瀏覽器運(yùn)行。它由超文本標(biāo)識(shí)語(yǔ)言(HTML)的Web
6、頁(yè)來(lái)調(diào)用。Javaa應(yīng)用程程序:JJavaa Apppliicattionns是一一種獨(dú)立立的程序序,它不不需要任任何Weeb瀏覽覽器來(lái)執(zhí)執(zhí)行。它它們是普普通的應(yīng)應(yīng)用程序序;應(yīng)改為逗號(hào)可運(yùn)行行于任何何具備JJavaa運(yùn)行環(huán)環(huán)境的設(shè)設(shè)備中。其它Jaava程程序:JJavaaBeaan,SServvlett,JSSP等。Javaa技術(shù)的的優(yōu)點(diǎn)Javaa技術(shù)取取得今天天這樣的的成就,依依賴(lài)于這這門(mén)技術(shù)術(shù)的先進(jìn)進(jìn)性,JJavaa技術(shù)具具有下列列優(yōu)點(diǎn):簡(jiǎn)單、健健壯:jjavaa=(cc+)-+,繼繼承了c+語(yǔ)言的的優(yōu)點(diǎn),去去掉了c+的難點(diǎn)點(diǎn),又加加入了新新的特性性;許多高高級(jí)語(yǔ)言言都要由由程序員員進(jìn)行指
7、指針運(yùn)算算和存儲(chǔ)儲(chǔ)器管理理。這項(xiàng)項(xiàng)工作即即復(fù)雜又又容易出出錯(cuò)。JJavaa不需要要程序員員進(jìn)行指指針運(yùn)算算和存儲(chǔ)儲(chǔ)器管理理,簡(jiǎn)化化了設(shè)計(jì)計(jì),減少少了出錯(cuò)錯(cuò)的可能能性。面向?qū)ο笙螅篔avva是面面向?qū)ο笙蟮某绦蛐蛟O(shè)計(jì)語(yǔ)語(yǔ)言。與與面向過(guò)過(guò)程的語(yǔ)語(yǔ)言相比比,面向向?qū)ο蟮牡恼Z(yǔ)言更更能反映映人類(lèi)對(duì)對(duì)世界的的認(rèn)識(shí)和和處理模模式,具具有良好好的代碼碼重用性性。處理理復(fù)雜、龐大而而且不斷斷變化的的信息系系統(tǒng),必必須使用用面向?qū)?duì)象的程程序設(shè)計(jì)計(jì)語(yǔ)言。分布式:目前,在在所有軟軟件產(chǎn)品品中,僅僅供單個(gè)個(gè)計(jì)算機(jī)機(jī)使用的的單機(jī)版版軟件所所占的比比例越來(lái)來(lái)越小。大多數(shù)數(shù)軟件都都可以運(yùn)運(yùn)行在網(wǎng)網(wǎng)絡(luò)環(huán)境境中。JJavaa擁
8、有一一個(gè)網(wǎng)絡(luò)絡(luò)協(xié)議對(duì)對(duì)象庫(kù)(TCP/IP,HTTP,FTP等),可以象錯(cuò)別字,改為像訪(fǎng)問(wèn)當(dāng)?shù)匚募粯釉L(fǎng)問(wèn)Internet上的對(duì)象。改進(jìn)的解解釋性:為彌補(bǔ)補(bǔ)解釋語(yǔ)語(yǔ)言速度度較慢的的不足,Java采用預(yù)編譯的辦法,將源程序生成字節(jié)代碼,減輕運(yùn)行時(shí)的解釋工作。另一方面,有些Java運(yùn)行環(huán)境采用Just-In-Time(JIT)編譯器將字節(jié)代碼編譯成機(jī)器碼直接運(yùn)行,這種運(yùn)行環(huán)境對(duì)于重復(fù)執(zhí)行的服務(wù)器端軟件特別有效,可以達(dá)到C語(yǔ)言的速度。安全:JJavaa語(yǔ)言在在編譯時(shí)時(shí)刪除了了指針和和內(nèi)存分分配,在在運(yùn)行時(shí)時(shí)檢查字字節(jié)代碼碼,拒絕絕執(zhí)行非非法的內(nèi)內(nèi)存訪(fǎng)問(wèn)問(wèn),超越越權(quán)限的的訪(fǎng)問(wèn)等等。可以以防御黑黑客攻擊擊
9、。平臺(tái)無(wú)關(guān)關(guān):Javva通過(guò)過(guò)采用虛虛擬機(jī)技技術(shù)真正正實(shí)現(xiàn)了了與平臺(tái)臺(tái)無(wú)關(guān)。Javva軟件件是真正正跨平臺(tái)臺(tái)可移植植的。編編譯過(guò)的的JAVVA文件,即即可以在在winndowwns上運(yùn)行行,也可可以L(fǎng)innux、Uniix等系統(tǒng)統(tǒng)上運(yùn)行行。加一段文字解說(shuō)多線(xiàn)程:允許一一個(gè)應(yīng)用用程序同同時(shí)做多多個(gè)任務(wù)務(wù)。動(dòng)態(tài)性:Javva允許許下載代代碼模塊塊,因此此,當(dāng)程程序運(yùn)行行時(shí)也能能動(dòng)態(tài)升升級(jí)。高性能:經(jīng)過(guò)實(shí)實(shí)際的綜綜合評(píng)測(cè)測(cè)得出結(jié)結(jié)論,JJavaa是高性性能的。Javaa虛擬機(jī)機(jī)Javaa虛擬機(jī)機(jī)在Javva運(yùn)行環(huán)環(huán)境中處處于核心心地位。Javaa虛擬機(jī)機(jī)使Javaa語(yǔ)言可可以跨多多種平臺(tái)臺(tái)運(yùn)行,保保
10、障了SSUN提提出的wriite oncce, runn annywhheree的特性,其組成成為:指令集(中中央處理理器CPUU寄存器類(lèi)文件格格式棧垃圾收集集堆存儲(chǔ)區(qū)Javaa虛擬機(jī)機(jī)隱藏了了計(jì)算機(jī)機(jī)硬件和和操作系系統(tǒng)的復(fù)復(fù)雜性。改為逗號(hào)使我們們只面對(duì)對(duì)單一的的支持JJavaa的計(jì)算算機(jī)。當(dāng)當(dāng)我們寫(xiě)寫(xiě)好Jaava源源程序后后,使用用編譯器器將源代代碼轉(zhuǎn)換換成JVVM的指指令序列列(字節(jié)節(jié)代碼),保保存為.cllasss文件增加文件。執(zhí)執(zhí)行Jaava程程序時(shí),JVM負(fù)責(zé)解釋字節(jié)代碼,JVM的指令轉(zhuǎn)換成真實(shí)的機(jī)器指令,并執(zhí)行。自動(dòng)內(nèi)存存回收(垃垃圾收集集)垃圾回收收就是將將程序不不再使用用的內(nèi)存
11、存塊釋放放出來(lái),以以提供給給其它程程序使用用。程序序運(yùn)行時(shí)時(shí)需要占占用一定定內(nèi)存空空間,當(dāng)當(dāng)程序退退出后應(yīng)應(yīng)該把占占用的內(nèi)內(nèi)存釋放放,在c, c+語(yǔ)言中中由程序序保證內(nèi)內(nèi)存的釋釋放,但但如果程程序員忘忘記釋放放內(nèi)存,就就會(huì)在內(nèi)內(nèi)存中“垃圾”增多,影影響其它它程序運(yùn)運(yùn)行;JJava語(yǔ)言實(shí)實(shí)現(xiàn)自動(dòng)動(dòng)垃圾回回收處理理,減輕輕了程序序員的負(fù)負(fù)擔(dān),杜杜絕了因因內(nèi)存管管理而導(dǎo)導(dǎo)致的程程序中的的問(wèn)題。程序員員可以建建議垃圾圾回收,通通過(guò)調(diào)用用Sysstemm.gcc()實(shí)現(xiàn)。常見(jiàn)垃圾圾收集機(jī)機(jī)制介紹紹JVM中中內(nèi)存劃劃分為:堆棧(Stack)、堆(Heap)、靜態(tài)存儲(chǔ)(Static)大多數(shù)垃垃圾收集集使用了
12、了根集(rooot sset)這個(gè)概概念;所所謂根集集就量錯(cuò)別字,改為是正在執(zhí)執(zhí)行的JJavaa程序可可以訪(fǎng)問(wèn)問(wèn)的引用用變量的的集合(包括局局部變量量、參數(shù)數(shù)、類(lèi)變變量),程序序可以使使用引用用變量訪(fǎng)訪(fǎng)問(wèn)對(duì)象象的屬性性和調(diào)用用對(duì)象的的方法。垃圾收收集首選選需要確確定從根根開(kāi)始哪哪些是可可達(dá)的和和哪些是是不可達(dá)達(dá)的,從從根集可可達(dá)的對(duì)對(duì)象都是是活動(dòng)對(duì)對(duì)象,它它們不能能作為垃垃圾被回回收,這這也包括括從根集集間接可可達(dá)的對(duì)對(duì)象。而而根集通通過(guò)任意意路徑不不可達(dá)的的對(duì)象符符合垃圾圾收集的的條件,應(yīng)應(yīng)該被回回收。簡(jiǎn)簡(jiǎn)單的說(shuō)說(shuō),就是是沒(méi)有任任何引用用指向這這塊內(nèi)存存空間,該該空間的的內(nèi)存就就可以被被回收
13、。增加一段文字說(shuō)明引用計(jì)數(shù)數(shù)法(Reffereencee Coounttingg Coolleectoor)一般來(lái)說(shuō)說(shuō),堆中中的每個(gè)個(gè)對(duì)象對(duì)對(duì)應(yīng)一個(gè)個(gè)引用計(jì)計(jì)數(shù)器。當(dāng)每一一次創(chuàng)建建一個(gè)對(duì)對(duì)象并賦賦給一個(gè)個(gè)變量時(shí)時(shí),引用用計(jì)數(shù)器器置為1。當(dāng)對(duì)對(duì)象被賦賦給任意意變量時(shí)時(shí),引用用計(jì)數(shù)器器每次加加1當(dāng)對(duì)象象出了作作用域后后(該對(duì)象象丟棄不不再使用用),引用用計(jì)數(shù)器器減1,一旦旦引用計(jì)計(jì)數(shù)器為為0,對(duì)象象就滿(mǎn)足足了垃圾圾收集的的條件?;谝糜糜?jì)數(shù)器器的垃圾圾收集器器運(yùn)行較較快,不不會(huì)長(zhǎng)時(shí)時(shí)間中斷斷程序執(zhí)執(zhí)行,適適宜地必必須 實(shí)時(shí)運(yùn)運(yùn)行的程程序。但但引用計(jì)計(jì)數(shù)器增增加了程程序執(zhí)行行的開(kāi)銷(xiāo)銷(xiāo),因?yàn)闉槊看螌?duì)
14、對(duì)象賦給給新的變變量,計(jì)計(jì)數(shù)器加加1,而每每次現(xiàn)有有對(duì)象出出了作用用域生,計(jì)計(jì)數(shù)器減減1。Traccingg算法(Traacinng CColllecttor)基于trraciing算法的的垃圾收收集器從從根集開(kāi)開(kāi)始掃描描,識(shí)別別出哪些些對(duì)象可可達(dá),哪哪些對(duì)象象不可達(dá)達(dá),并用用某種方方式標(biāo)記記可達(dá)對(duì)對(duì)象,例例如對(duì)每每個(gè)可達(dá)達(dá)對(duì)象設(shè)設(shè)置一個(gè)個(gè)或多個(gè)個(gè)位。在在掃描識(shí)識(shí)別過(guò)程程中,基基于traacinng算法的的垃圾收收集也稱(chēng)稱(chēng)為標(biāo)記記和清除除(maark-andd-swweepp)垃圾收收集器。comppacttingg算法(Commpacctinng CColllecttor)為了解決決堆碎片片
15、問(wèn)題,基基于traacinng的垃圾圾回收吸吸收了Commpacctinng算法的的思想,在在清除的的過(guò)程中中,算法法將所有有的對(duì)象象移到堆堆的一端端,堆的的另一端端就變成成了一個(gè)個(gè)相鄰的的空閑內(nèi)內(nèi)存區(qū),收收集器會(huì)會(huì)對(duì)它移移動(dòng)的所所有對(duì)象象的所有有引用進(jìn)進(jìn)行更新新,使得得這些引引用在新新的位置置能識(shí)別別原來(lái)多余一個(gè)空格,可刪除的的對(duì)象。在基于于Commpacctinng算法的的收集器器的實(shí)現(xiàn)現(xiàn)中,一一般增加加句柄和和句柄表表。垃圾回收收的幾個(gè)個(gè)特點(diǎn)垃圾收集集發(fā)生的的不可預(yù)預(yù)知性:由于實(shí)實(shí)現(xiàn)了不不同的垃垃圾收集集算法和和采用了了不同的的收集機(jī)機(jī)制,所所以它有有可能是是定時(shí)發(fā)發(fā)生,有有可能是是當(dāng)出
16、現(xiàn)現(xiàn)系統(tǒng)空空閑CPU資源時(shí)時(shí)發(fā)生,也也有可能能是和原原始的垃垃圾收集集一樣,等等到內(nèi)存存消耗出出現(xiàn)極限限時(shí)發(fā)生生,這與與垃圾收收集器的的選擇和和具體的的設(shè)置都都有關(guān)系系。垃圾收集集的精確確性:(a)垃圾圾收集器器能夠精精確標(biāo)記記活著的的對(duì)象;(b)垃圾圾收集器器能夠精精確地定定位對(duì)象象之間的的引用關(guān)關(guān)系。前前者是完完全地回回收所有有廢棄對(duì)對(duì)象的前前提,否否則就可可能造成成內(nèi)存泄泄漏。而而后者則則是實(shí)現(xiàn)現(xiàn)歸并和和復(fù)制等等算法的的必要條條件。所所有不可可達(dá)對(duì)象象都能夠夠可靠地地得到回回收,所所有對(duì)象象都能夠夠重新分分配,允允許對(duì)象象的復(fù)制制和對(duì)象象內(nèi)存的的縮并,這這樣就有有效地防防止內(nèi)存存的支離離
17、破碎。垃圾收集集的實(shí)現(xiàn)現(xiàn)和具體體的JVMM 以及JVM的內(nèi)存存模型有有非常緊緊密的關(guān)關(guān)系。不不同的JVMM 可能采采用不同同的垃圾圾收集,而JVM 的內(nèi)存模型決定著該JVM可以采用哪些類(lèi)型垃圾收集?,F(xiàn)在,HotSpot 系列JVM中的內(nèi)存系統(tǒng)都采用先進(jìn)的面向?qū)ο蟮目蚣茉O(shè)計(jì),這使得該系列JVM都可以采用最先進(jìn)的垃圾收集。代碼運(yùn)行行過(guò)程Javaa源程序序通過(guò)編譯,轉(zhuǎn)換換成字節(jié)節(jié)碼。字字節(jié)碼被被存儲(chǔ)在在.cllasss文件中中。構(gòu)成Jaava軟軟件程序序的字節(jié)節(jié)代碼在在運(yùn)行時(shí)時(shí)被加載載、校驗(yàn)驗(yàn)并在解解釋器中中運(yùn)行。當(dāng)運(yùn)行行Applletss時(shí),字字節(jié)碼可可被下載載,然后后由瀏覽覽器中的的JVMM進(jìn)行
18、解解釋。解解釋器具具備兩種種功能,一一是執(zhí)行行字節(jié)代代碼,二二是對(duì)底底層硬件件做適當(dāng)當(dāng)調(diào)用。在一些使使用Jaava技技術(shù)的運(yùn)運(yùn)行環(huán)境境中,部部分校驗(yàn)驗(yàn)過(guò)的字字節(jié)碼被被編譯成成機(jī)器碼碼并直接接運(yùn)行于于硬件平平臺(tái)。這這就使JJavaa軟件代代碼能夠夠以接近近C或C+的速度度運(yùn)行,只只是在加加載時(shí),因因?yàn)橐幘幾g成機(jī)機(jī)器碼而而略有延延遲。Javaa技術(shù)運(yùn)運(yùn)行字節(jié)節(jié)代碼包包含如下下三大步步驟:加載代碼碼由類(lèi)類(lèi)加載器器執(zhí)行校驗(yàn)代碼碼由字字節(jié)碼校校驗(yàn)器執(zhí)執(zhí)行執(zhí)行代碼碼由運(yùn)運(yùn)行時(shí)的的解釋器器執(zhí)行(Javva程序運(yùn)運(yùn)行的三三大步驟驟)類(lèi)加載器器類(lèi)加載器器為程序序的執(zhí)行行,加載載所需要要的類(lèi)。類(lèi)加載載器將本本地
19、文件件系統(tǒng)的的類(lèi)名空空間,與與來(lái)自網(wǎng)網(wǎng)絡(luò)的類(lèi)類(lèi)名空間間相分離離,以增增加安全全性。當(dāng)當(dāng)全部類(lèi)類(lèi)被加載載后,可可執(zhí)行文文件的存存儲(chǔ)器格格式被確確定。這這時(shí),特特定的存存儲(chǔ)器地地址被分分配給變變量并創(chuàng)創(chuàng)建檢索索表格。由于存存儲(chǔ)器格格式在運(yùn)運(yùn)行時(shí)出出現(xiàn),因因而Jaava技技術(shù)解釋釋器增加加了保護(hù)護(hù)以防止止對(duì)限制制代碼區(qū)區(qū)的非法法訪(fǎng)問(wèn)。JVM中中有四種種類(lèi)加載載器,分分別為(本節(jié)以下下內(nèi)容可可以在以以后再理理解):BoottStrrapCClasssLooadeer:?jiǎn)?dòng)類(lèi)加加載器:虛擬機(jī)機(jī)啟動(dòng)時(shí)時(shí)最先加加載系統(tǒng)統(tǒng)加載關(guān)關(guān)鍵的運(yùn)運(yùn)行類(lèi)的的加載器器。ExtCClasssLooadeer:擴(kuò)展展類(lèi)加載載
20、器,專(zhuān)專(zhuān)門(mén)用來(lái)來(lái)加載所所有javva.eext.dirrs下的.jaar文件。開(kāi)發(fā)者者可以通通過(guò)把自自己的.jaar文件或或庫(kù)文件件加入到到擴(kuò)展目目錄的claassppathh,使其其可以被被擴(kuò)展類(lèi)類(lèi)加載器器讀取。AppCClasssLooadeer:應(yīng)用用(系統(tǒng)統(tǒng))類(lèi)加加載器,用用來(lái)讀取取所有的的對(duì)應(yīng)在在javva.cclasss.ppathh系統(tǒng)屬屬性的路路徑下的的類(lèi)以上三個(gè)個(gè)類(lèi)在JJDK中中不能查查到,他他們是JJVM底底層使用用的,我我們可以以認(rèn)為這這三者關(guān)關(guān)系如下下:BoottStrrapCClasssLooadeer-ExttClaassLLoadder-ApppCllasssLo
21、aaderrJDK中中定義了了一些CClasssLooadeer類(lèi),我我們可以以觀(guān)察到到繼承關(guān)關(guān)系如下下:ClasssLooadeer-SeccureeClaassLLoadder-URRLCllasssLoaaderr-AAppCClasssLooadeer我們也可可以繼承承ClaassLLoadder類(lèi)類(lèi)制作自自己的CClasssLooadeer(用用戶(hù)定義義的類(lèi)加加載器)。一些關(guān)于于ClaassLLoadder的的常用方方法:sun.missc.LLaunncheer.ggetBBoottstrrapCClasssPaath().ggetUURLss();/根根據(jù)以上上敘述,應(yīng)應(yīng)該是先先
22、獲取啟啟動(dòng)類(lèi)路路徑再轉(zhuǎn)轉(zhuǎn)成路徑徑的數(shù)組組。MyCllasss.cllasss.geetCllasssLoaaderr();/MMyCllasss是類(lèi)名名ClasssLooadeer.ggetSSysttemCClasssLooadeer();/獲得系系統(tǒng)(應(yīng)應(yīng)用)級(jí)級(jí)類(lèi)加載載器ClasssLooadeer.ggetSSysttemCClasssLooadeer().geetCllasss();/可以知知道這個(gè)個(gè)類(lèi)加載載器的名名字等了了javaa.laang.Thrreadd.geetCoonteextCClasssLooadeer();/獲取當(dāng)當(dāng)前線(xiàn)程程的上下下文類(lèi)加加載器。字節(jié)代碼碼校驗(yàn)器器
23、所有的cclasss文件都都要經(jīng)過(guò)過(guò)字節(jié)碼碼校驗(yàn)器器。字節(jié)節(jié)碼校驗(yàn)驗(yàn)器主要要測(cè)試以下下內(nèi)容:代碼段語(yǔ)語(yǔ)法格式式是否正正確?有無(wú)違反反規(guī)則的的非法代代碼?是否違反反對(duì)象訪(fǎng)訪(fǎng)問(wèn)權(quán)限限?是否試圖圖改變對(duì)對(duì)象類(lèi)型型?字節(jié)碼校校驗(yàn)器對(duì)對(duì)程序代代碼進(jìn)行行四遍校校驗(yàn),這這可以保保證代碼碼符合JJVM規(guī)規(guī)范并且且不破壞壞系統(tǒng)的的完整性性。如果果校驗(yàn)器器在完成成四遍校校驗(yàn)后未未返回出出錯(cuò)信息息,則下下列各項(xiàng)項(xiàng)要求會(huì)會(huì)得到保保證:程序代碼碼所在的的類(lèi),符符合JVM規(guī)范的的類(lèi)文件件格式。無(wú)訪(fǎng)問(wèn)限限制違例例,如訪(fǎng)訪(fǎng)問(wèn)本地地文件,訪(fǎng)訪(fǎng)問(wèn)網(wǎng)絡(luò)絡(luò)等。代碼未引引起操作作數(shù)錯(cuò)別字,改為堆棧的增加一字說(shuō)明上溢或或下溢。所有操作作
24、代碼的的參數(shù)類(lèi)類(lèi)型將總總是正確確的。無(wú)非法數(shù)數(shù)據(jù)轉(zhuǎn)換換發(fā)生,例例如:將將整數(shù)轉(zhuǎn)轉(zhuǎn)換為對(duì)對(duì)象引用用。Javaa安裝配置置各平臺(tái)安安裝程序序可以到到SUN的網(wǎng)站站(javva.ssunxx)下載,在在安裝完完成后應(yīng)應(yīng)該進(jìn)行行配置,通通常集成成開(kāi)發(fā)環(huán)環(huán)境(IDE)自帶JDK或進(jìn)行行了自動(dòng)動(dòng)配置,如如果我們們通過(guò)控控制臺(tái)編編譯或運(yùn)運(yùn)行Javva程序則則必須手手動(dòng)配置置。JDK:是Javva開(kāi)發(fā)發(fā)工具包包(J22SE Sofftwaare Devveloopmeent Kitt)的縮縮寫(xiě),用Javva語(yǔ)言言編寫(xiě)aappllet小小程序和和應(yīng)用程程序的軟軟件開(kāi)發(fā)發(fā)環(huán)境,Javva開(kāi)發(fā)者者應(yīng)該安安裝JDK,
25、并且且通常JDK中已包包含一個(gè)個(gè)JRE拷貝。JRE:是Javva運(yùn)行行環(huán)境 (Jaava Runntimme EEnviironnmennt) 的縮寫(xiě)寫(xiě)。它基基本上就就和Jaava虛虛擬機(jī)是是同一個(gè)個(gè)概念,運(yùn)運(yùn)行Javva程序的的應(yīng)該安安裝JREE。(JDKK安裝目目錄示例例)bin:javva常用開(kāi)開(kāi)發(fā)工具具目錄,例例如javvac,javva,jar等工具具。demoo: ssun提供的的一些用用于javva開(kāi)發(fā)的的示范,如有關(guān)關(guān)apppletts,jfcc,pluuginn等。inclludee: JJavaa提供用用于c/cc+調(diào)用的.h文件;jre: 對(duì)應(yīng)版版本的javva運(yùn)行環(huán)環(huán)境
26、文件件sampple: jaava案例。lib: jaava類(lèi)庫(kù)目目錄Winddowss環(huán)境變變量應(yīng)設(shè)置的的環(huán)境變變量包括括:JAAVA_HOMME, PATTH, CLAASSPPATHH。假設(shè)J22DK安安裝在“C:JDKK1.55”,環(huán)境變變量可設(shè)設(shè)置為:JAVAA_HOOME=C:JDKK1.55CLASSSPAATH=.PATHH=%JJAVAA_HOOME%BIIN;%PATTH%(Winndowws下環(huán)境境變量的的設(shè)置)Linuux下環(huán)境變變量假設(shè)jddk安裝裝在/hhomee/jddk1.5目錄錄下,修修改配置置文件 /ettc/pproffilees ,在在文件的的尾部加加入
27、如下下信息:JAVAA_HOOME=/hoome/jdkk1.55CLASSSPAATH=.PATHH=$JJAVAA_HOOME/binn:錯(cuò)別字,應(yīng)改為分號(hào)$PAATH第一個(gè)JJavaa程序編寫(xiě)一個(gè)個(gè)程序,輸輸出一行行文本信信息:Wellcomme tto JJavaa Prrogrrammmingg編輯器的的使用Javaa代碼的的開(kāi)發(fā)可可以使用用常見(jiàn)的的編輯器器,如:寫(xiě)寫(xiě)字板,Editplus,Ultra Edit,也可以使用專(zhuān)用的開(kāi)發(fā)工具,如:JBuilder, Eclipse, NetBeans,JCreator等。在開(kāi)始學(xué)習(xí)時(shí),建議先學(xué)習(xí)使用帶有關(guān)鍵字顏色提示的EditPlus開(kāi)發(fā)
28、Java代碼。Edittpluus下的Javva程序顯顯示編寫(xiě)程序序1 /這是一一行注釋釋2 puubliiccllasss Weelcoome 34 puubliicsttatiicvooid maiin(SStriing aargss) 5Sysstemm.ouut.pprinntlnn(WWelccomee tto JJavaa Prrogrrammmingg!);6 /mmainn方法結(jié)結(jié)束78 /類(lèi)結(jié)束行1:注注釋?zhuān)河糜脕?lái)說(shuō)明明程序的的作用行2:開(kāi)開(kāi)始聲明明一個(gè)類(lèi)類(lèi),類(lèi)名名為Weelcoome, cllasss是JAVVA的關(guān)關(guān)鍵字,用用來(lái)定義義類(lèi),ppubllic為為訪(fǎng)問(wèn)說(shuō)說(shuō)明。在
29、在這里我我們聲明明了一個(gè)個(gè)類(lèi),類(lèi)類(lèi)的名字字為Weelcoome.行3,77:空行行,用來(lái)來(lái)增加程程序的可可讀性行4:是是JAVVA應(yīng)用用程序必必須包含含的方法法,被稱(chēng)稱(chēng)為入口口方法:程序運(yùn)運(yùn)行時(shí)從從這里開(kāi)開(kāi)始執(zhí)行行,其形形式必須須是:publlicsstatticvvoidd maain(Strringg arggs)或或者statticppubllicvvoidd maain(Strringg arggs)上面的語(yǔ)語(yǔ)句里,只只能修改改 arrgs這這個(gè)字符符串?dāng)?shù)組組的名字字。stattic 表示直直接能夠夠加載該該方法運(yùn)運(yùn)行。voidd 是方方法的返返回類(lèi)型型,每個(gè)個(gè)方法必必須有返返回類(lèi)型型(除了了構(gòu)造方方法)。mainn是方法法的名字字,是程程序的入入口調(diào)用用的方法法。Striing 是是方法的的參數(shù),必必須是SStriing 數(shù)組類(lèi)類(lèi)型的。行5:SSysttem.outt.prrinttln(Weelcoome too Jaava Proograammiing!);就是輸出出字符串串的,雙引號(hào)號(hào)中的字字符串會(huì)會(huì)在控制制臺(tái)輸出出。也可以使使用以下下語(yǔ)句輸輸出一個(gè)個(gè)對(duì)話(huà)框框顯示信信息:JOpttionnPanne.sshowwMesssaggeDiialoog(nnulll,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《創(chuàng)新作品推介技巧》課件
- 2022長(zhǎng)沙市岳麓區(qū)高考英語(yǔ)完形填空和閱讀理解一輪練習(xí)(10)及答案
- 【全程復(fù)習(xí)方略】2020年高考政治一輪單元評(píng)估檢測(cè)(十五)(江蘇專(zhuān)供)
- 北京市通州區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末考試語(yǔ)文試卷(含答案)
- 2024-2025學(xué)年遼寧省沈陽(yáng)市沈河區(qū)七年級(jí)(上)期末英語(yǔ)試卷(含答案)
- 【名師一號(hào)】2022屆高三歷史一輪復(fù)習(xí)調(diào)研試題:第十單元-中國(guó)特色社會(huì)主義建設(shè)的道路10-19a
- 三年級(jí)數(shù)學(xué)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 【創(chuàng)新設(shè)計(jì)】2020-2021學(xué)年高中化學(xué)魯科版選修5-分層訓(xùn)練:第2章-第3節(jié)-第1課時(shí)-醛和酮
- 《疾病與健康課件》課件
- 杜絕不良行為-遠(yuǎn)離違法犯罪主題班會(huì)
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(kù)(共380題含答案)
- 施工現(xiàn)場(chǎng)環(huán)境因素識(shí)別、評(píng)價(jià)及環(huán)境因素清單、控制措施
- 【9道期末】安徽省宣城市2023-2024學(xué)年九年級(jí)上學(xué)期期末道德與法治試題(含解析)
- 2024年醫(yī)藥行業(yè)年終總結(jié).政策篇 易聯(lián)招采2024
- 《工程造價(jià)專(zhuān)業(yè)應(yīng)用型本科畢業(yè)設(shè)計(jì)指導(dǎo)標(biāo)準(zhǔn)》
- 倉(cāng)庫(kù)主管2025年終總結(jié)及2025工作計(jì)劃
- 廣州英語(yǔ)小學(xué)六年級(jí)英語(yǔ)六上冊(cè)作文范文1-6單元
- 接觸鏡臨床驗(yàn)配智慧樹(shù)知到期末考試答案2024年
- 徐州市2023-2024學(xué)年八年級(jí)上學(xué)期期末英語(yǔ)試卷(含答案解析)
- 譯林版小學(xué)英語(yǔ)六年級(jí)上冊(cè)英文作文范文
- 某城市污水處理廠(chǎng)設(shè)計(jì)污水處理廠(chǎng)設(shè)計(jì)說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論