版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、1991年Sun公司為實現(xiàn)“物聯(lián)網(wǎng)”成立了“綠色小組”,James Gosling于該年6月份開發(fā)一種新的語言并命名為OAK(橡樹),一種精巧而安全的網(wǎng)絡語言,適用于多線程編程,后發(fā)現(xiàn)OAK已是另一個公司的注冊商標,改名為Java(太平洋上一個盛產(chǎn)咖啡的島嶼名字)。一、Java虛擬機(Java Virtual Machine)是軟件模擬的計算機,可以在任何處理器上安全并且兼容地執(zhí)行保存在class文件中的字節(jié)碼。工作原理如下圖:二、.Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行的字節(jié)碼,字節(jié)碼其實就是二進制編碼,也叫偽代碼。(Java.class可在其他操作系統(tǒng)中使用JVM直接運行,但C
2、/C+編譯后的obj文件不可運行,需重新編譯)。三、.字節(jié)碼的執(zhí)行需要三個步驟:1.由類裝載器(CLASS LOADER)負責把類文件(CLASS文件)加載到JAVA虛擬機中(此過程需要檢查該類文件是否符合類文件規(guī)范)2.字節(jié)碼校驗器(BYTECODE VERIFIER)檢查該類文件的代碼中是否存在著某些非法操作。3.由JAVA解釋器把該類文件解釋成為機器碼執(zhí)行。四、Java的“沙箱”運行模式:“沙箱”的四個組件:·類裝載器··class文件檢驗器·Java虛擬機內(nèi)置的安全特性·安全管理器1. 類裝載器:通過命名空間隔離類,使不同命名空間的類不
3、會互相訪問(顯示指定了訪問方式的例外),解決了類的訪問范圍問題。類的裝載順序問題和防止惡意加載的方法上圖中的網(wǎng)絡類裝載器理解為用戶自定義的裝載器,啟動類裝載器是Java的頂級類裝載器和標準擴展類裝載器理解為系統(tǒng)自帶的類裝載器。例,當需要加載類A的時候,會先從父裝載器開始尋找是否已經(jīng)存在類A,如果沒有,迭代尋找父裝載器,直到啟動類裝載器返回結(jié)果,如果找到了,就由父裝載器加載,如果都沒有,則由自己加載。類裝載器加載類有一些保護規(guī)則,如下:1. 2. 3. 增加黑名單。類裝載器可以指定禁止加載的類列表,如果發(fā)現(xiàn)企圖加載,則立即拋出異常。2. class文件檢驗器安全性開始進入到了類的內(nèi)部了。Java
4、虛擬機對class文件有4次檢查:1. class文件的結(jié)構(gòu)檢查。在類被加載時進行。文件格式檢查,檢查包頭、版本、文件長度等。2. 類型數(shù)據(jù)的語義檢查。在連接過程中進行。class文件檢驗器在運行時檢查了一些Java語言在編譯時應該遵守的強制規(guī)則。3. 字節(jié)碼驗證。在連接過程中進行。我的理解就是檢查方法,對方法(操作碼、操作數(shù))進行檢查,確保能夠正確訪問。由于“停機問題”的緣故,檢查的規(guī)則是一個特定的規(guī)則集合,而不是所有可能的情況。4. 符號引用的驗證。這個是在動態(tài)連接的過程中,對外部調(diào)用的檢查。例,NoClassDefFoundError并不是在預加載過程彈出的,而是直 到這個不存在的類首次
5、被程序使用的時候才彈出。順便提一下,動態(tài)連接時,查找被引用的類(如果需要就加載該類),把符號引用轉(zhuǎn)換為直接引用(指針、偏移 量)。二進制兼容問題,為什么要在動態(tài)連接時進行檢查(上面第四條),一個原因是防止原有的class發(fā)生了變化,有專門的二進制兼容規(guī)則描述哪些情況是 可以兼容的。例如,在被調(diào)用的類中新添加方法是可以的,但是給老方法改名是不可以的。我個人的理解就是:以符號引用的方法進行動態(tài)連接,只要符號不變,就 OK,符號變了就不行。3. Java虛擬機內(nèi)置的安全特性·類型安全的引用轉(zhuǎn)換(強制顯示類型轉(zhuǎn)換)·結(jié)構(gòu)化內(nèi)存訪問(無指針)·自動垃圾回收·數(shù)組邊
6、界檢查·空引用檢查·不指明運行時數(shù)據(jù)空間分布。Java棧(每個線程一個)、方法區(qū)、垃圾收集堆的數(shù)據(jù)都不預先指明內(nèi)存地址,只在運行時由Java虛擬機分配。·本地方法不受Java虛擬機安全性的限制。只要開始運行本地方法,就跳出了Java虛擬機的沙箱了。比較安全的做法,是不要直接調(diào)用本地方法,通過Java API進行調(diào)用,這樣可以利用Java API本身的安全性來控制。·線程死亡不影響其它線程。4. 安全管理器關于代碼源(CodeSource)、簽名和保護域,只用下圖來稍作解釋: CodeSource由唯一的代碼URL和簽名0N組成,上圖中是文件系統(tǒng)中的fri
7、end.jar和friend簽名組成,簽名可以沒有。 文件的權(quán)限是權(quán)限的一種,一個權(quán)限(Permission)表示為類型、屬性和動作。如FilePermission、“question.txt”、“read”表示對question.txt的文件權(quán)限為讀。 多個權(quán)限組成PermissionCollection,圖中表示為Permissions。 保護域(ProtectionDomain)就是將CodeSource與多個權(quán)限關聯(lián)起來。Policy對象有一個getPermission的方法,通過傳入一個CodeSource,可以獲得其對應的Permissions。五、Java不僅是一種語言,還是一個
8、開發(fā)平臺,為開發(fā)者提供了編譯器、解釋器、文檔生成器和文件打包工具等。Java還是一個程序發(fā)布平臺,主要有兩種形式:Java應用程序Java小程序(Java小程序需嵌入到網(wǎng)站當中依賴瀏覽器運行,且兩種形式均需JRE支持)六、Java體系分為三個平臺:1.J2SE(JavaSE)Java標準版,主要針對于圖像編輯。5. J2ME(JavaME)Java嵌入式開發(fā),開發(fā)Java小程序。6. J2EE(JavaEE)Java企業(yè)版,應用于服務器(網(wǎng)站構(gòu)建)。七、Java提供了三大類API(Application Programming Interface):1. Java Core API:由Sun制定的基本API,任何Java平臺必須提供。2. Java Standard Extension API(Javax):由Sun制定的擴充API,Java平臺可以選擇性地提供或加裝。3. 廠商或組織提供的API:由各家公司或組織所提供。八、Java平臺包括:1. JDK(Java Developmen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實時影像技術下的醫(yī)療診斷新趨勢
- 語文教學中如何有效實施經(jīng)典誦讀教育
- 2025年度個人藝術品典當擔保合同匯編4篇
- 2025年度臨時展覽館搭建與運營服務合同3篇
- 教育領域中的創(chuàng)新科技與知識產(chǎn)權(quán)教育
- 二零二五年度車牌租賃業(yè)務合規(guī)審查合同協(xié)議4篇
- 二零二五年度車輛進出口貿(mào)易合同8篇
- 溫州浙江溫州泰順縣羅陽鎮(zhèn)中心衛(wèi)生院招聘編外工作人員8人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州樂清市婦女兒童服務中心招聘工作人員筆試歷年參考題庫附帶答案詳解
- 海南2025年海南省直屬機關資產(chǎn)管理中心招聘20人(第1號)筆試歷年參考題庫附帶答案詳解
- 2025-2030年中國草莓市場競爭格局及發(fā)展趨勢分析報告
- 第二章《有理數(shù)的運算》單元備課教學實錄2024-2025學年人教版數(shù)學七年級上冊
- 華為智慧園區(qū)解決方案介紹
- 奕成玻璃基板先進封裝中試線項目環(huán)評報告表
- 廣西壯族自治區(qū)房屋建筑和市政基礎設施全過程工程咨詢服務招標文件范本(2020年版)修訂版
- 人教版八年級英語上冊期末專項復習-完形填空和閱讀理解(含答案)
- 2024新版有限空間作業(yè)安全大培訓
- GB/T 44304-2024精細陶瓷室溫斷裂阻力試驗方法壓痕(IF)法
- 年度董事會工作計劃
- 《退休不褪色余熱亦生輝》學校退休教師歡送會
- 02R112拱頂油罐圖集
評論
0/150
提交評論