国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java安全體系結構

2019-11-18 11:32:05
字體:
來源:轉載
供稿:網友

java語言擁有三大特征:平臺無關性、網絡移動性和安全性,而Java體系結構對這三大特征提供了強大的支持和保證,本文著重介紹Java體系結構對支持信息安全的原理和使用方法。

Java體系結構

Java的體系結構如下圖所示,首先Java的源代碼Java文件由編譯器編譯成Java的二進制字節碼class文件,然后class文件由Java虛擬機中的類裝載器進行加載,同時類裝載器還會加載Java的原始APIClass文件,類加載器主要負責加載、連接和初始化這些class文件以后,就交給虛擬機中的執行引擎運行,執行引擎將class文件中的Java指令解釋成具體的本地操作系統方法來執行,而安全治理器將在執行過程中根據設置的安全策略控制指令對外部資源的訪問。

Java的執行方式不是編譯執行而是解釋執行,不同平臺上面相同的源代碼編譯成符合Java規范的相同的二進制字節碼,然后再交給支持各自平臺的虛擬機去解釋執行,"先編譯,后解釋,再執行"三步走的方式使得Java實現了"一次編寫,到處運行",假如Java應用使用的是100%標準JavaAPI并且沒有直接調用本地方法,那就可以不加修改地運用在多種平臺上,這樣的平臺無關性使得在異構的網絡環境或者嵌入式方面的應用更方便和現實。Java的網絡移動性帶來了一種全新的軟件模式,在分布式處理模式的基礎之上,可以將軟件和數據通過網絡傳送到客戶端去,這樣確保了客戶端有必備的軟件來瀏覽和操縱通過網絡傳輸的數據,Java體系結構支持把單一的執行文件切割成小的二進制字節碼文件Class文件,而這些文件可以按照應用的需要動態連接、動態擴展。Java體系結構對安全性的支持主要是通過Java語言本身安全性、虛擬機的類加載器和安全治理器以及Java提供的安全API幾個方面來實現:防止惡意程序的攻擊,程序不能破壞用戶計算機環境;防止入侵,程序不能獲取主機或所在內網的保密信息;鑒別,驗證程序提供者和使用者的身份;加密,對傳輸交換的數據進行加密,或者給持久化的數據進行加密;驗證,對操作設置規則并且進行驗證。

Java信息安全的必要性

隨著互聯網應用越來越廣泛,并且互聯網其本身獨特的資源共享性,因此能夠按照用戶需求及時準確獲得信息和處理信息的應用對用戶而言就相當重要,這也是Java得以迅速發展和被廣泛接受的原因。但同時網絡也提供了一條攻擊接入計算機的潛在途徑,非凡是當用戶下載網絡軟件在本地運行,這就要求Java能夠對病毒/木馬的問題加以防范,對信息以及本地環境進行保護。比如我們瀏覽一個網頁的時候,網頁上的Applet可能會自動下載并且運行,而這個Applet完全有可能來自不可靠的地方,又或者我們使用通過JINI服務查找到的網絡上不可靠的服務對象來獲得服務,假如沒有Java體系結構提供的安全機制,這就很有可能引入了一個懷有敵意的程序造成信息丟失、資料泄密、相信偽造數據和修改本地計算機安全設置等等后果,帶來未知的嚴重后果。

Java語言本身安全性

Java語言的設計者們是在C++的基礎上設計出來Java的,因此與C++相比它的語法更加簡單清楚,結構、單元、運算符重載、虛擬基礎類等在Java中都沒有采用,并且取消了多重繼續而采用實現多個接口的方式。這樣能降低開發人員犯錯誤的幾率,幫助他們寫出更安全的代碼。

Java中去除了C++語言中的令人費解、輕易出錯的"指針",用列表、堆、哈希表等結構來代替,避免了任何不安全的結構。Java也沒有索引核查的數組訪問,因為這往往會導致不定的、不可猜測的程序操作,它所有的數組訪問都必須先檢查是否越界。Java要求所有的變量在初始化以前不能使用,對于基本數據類型變量都會自動地賦給某個初始值,避免了未初始化變量獲取內存信息。所有這些都使得程序不能訪問任意的內存地址,對于內存中的實體信息只能通過有權限的對象進行訪問,而不會出現象C++那樣把類型指針強制轉換成內存的指針,然后通過內存查找的方法找到私有的變量。

Java分配內存對于開發人員來說是透明的,開發人員使用new方法新建對象,這時候虛擬機就會從堆內存中找到合適的內存空間,開發人員不需要也不能夠進行干預。而對于內存的回收,Java避免了開發人員明確干預對象的回收,比如C的free或C++的delete命令,避免了開發人員無意間對內存的破壞。Java采用虛擬機的"垃圾回收"機制來實現的內存自動治理,釋放不再被使用的內存資源,內存回收器就像一臺垃圾收集車,但是和我們在大街上看到的收集車,僅僅收集大家放在垃圾桶里面的垃圾不同的是,它還要到你家里去幫你找出那些東西是不要用的垃圾,然后把這些東西拿走,最后還要整理家里的空間,騰出最大的空間讓你放新東西。Java的內存回收器目的就是找到不再引用的對象,釋放內存空間,并且需要整理內存的碎片空間,盡量避免出現"內存不足"的情況。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九台市| 监利县| 大渡口区| 微博| 张家川| 奉贤区| 柯坪县| 阿尔山市| 华池县| 专栏| 北安市| 绥棱县| 精河县| 绿春县| 沈丘县| 怀仁县| 桐庐县| 日喀则市| 商河县| 武鸣县| 庄浪县| 星座| 宁国市| 康定县| 永胜县| 子洲县| 波密县| 万山特区| 镇雄县| 富平县| 萍乡市| 涿州市| 大连市| 富川| 类乌齐县| 扎囊县| 彝良县| 揭西县| 丹凤县| 峡江县| 扎赉特旗|