999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

芻議Java動態(tài)類加載機制研究與應(yīng)用

2016-07-10 05:38:09朱丹丹
電子技術(shù)與軟件工程 2016年7期

目前計算機的運行可以說已經(jīng)離不開Java編程體系,Java是指一種能夠撰寫跨平臺的應(yīng)用軟件的面向其對象的程序設(shè)計語言。JVM(虛擬機)是Java編程體系的核心,而Java的動態(tài)類加載則是JVM的重要特征之一。本文就Java的動態(tài)類加載機制的研究與應(yīng)用,淺要分析了Java的動態(tài)類加載器的原理與層次體系結(jié)構(gòu),以作參考。

【關(guān)鍵詞】Java虛擬機 動態(tài)類加載機制 體系結(jié)構(gòu) 研究應(yīng)用

1 Java類加載的層次體系結(jié)構(gòu)

Java中的所有類都是經(jīng)由裝載到j(luò)vm中的類加載器加載完成的,類加載器就是把類文件從硬盤讀取到內(nèi)存中。Java中的類可分為Java系統(tǒng)核心類。擴展類以及由程序員自定義的類;jvm的加載器也分為Bootstrap,classLoader,ExtClassLoader以及AppClassLoader,其分別對應(yīng)的是加載Java的系統(tǒng)核心、擴展以及程序員自定義的應(yīng)用類。另外,除了jvm默認的三個加載器,第三方如果有特殊的需求,也可以自己編寫類加載器。就比如,如果需要加密指定目錄的類,就只能用我們自己類的加載器才能解密加載。

2 Java動態(tài)類加載機制的原理

JVM解釋字節(jié)碼,就得經(jīng)過加載、連接以及初始化三個過程,通過這三個過程創(chuàng)建了一個類型,且被Java程序所使用。

2.1 加載

就是要通過尋找類或者是接口字節(jié)碼文件,從而來進行解析并且構(gòu)造出JVM內(nèi)部對象所表示的組件。

2.2 連接

即是將加載過的二進制數(shù)據(jù)進行合并,進入到JVM中,其中包括有檢查、準備以及解析三個階段。

2.3 初始化

也就是對靜態(tài)的變量、靜態(tài)代碼塊進行初始化工作。

也就是說,JVM在運行時會產(chǎn)生幾個類加載器,而當(dāng)類加載器要運行時,Java對類加載器進行了分工以及分級,以方便多個類加載器的協(xié)調(diào)工作。而且同一級別的類加載器負責(zé)相應(yīng)級別的類。JVM采用的是“全盤負責(zé)雙親委托模型”的類加載器機制,“全盤負責(zé)”指的是一個加載器裝載一個雷=類,該類依靠和引用的類也是從這個加載器載入。“委托模型”則是說加載器加載某個類時,會先在加載器中檢測需要加載的類有沒有加載,加載了便直接返回到先前加載過的類對象,反之,這個類沒有被加載過,就把其類名上交給父類加載器,讓父類加載器去加載,如果父類加載器可以加載,就返回對應(yīng)的class對象,不然就還是得繼續(xù)向上提交到根引導(dǎo)類加載器,這就是一個遞歸的過程。從安全性方面考慮,只有在根引導(dǎo)器都無法加載了,才從自己的類路徑里查詢裝載目標(biāo)類,這樣的話,就算是有人寫了惡性的基礎(chǔ)類,并將其加載到了JVM中,但是一旦有了委托模型,就永遠是根加載轉(zhuǎn)載基礎(chǔ)類,也就能夠抵制惡劣后果的出現(xiàn)了。

3 Java動態(tài)類加載的實現(xiàn)

JVM加載類的方式主要分為隱形加載和顯式加載。隱式加載是指程序在運行時用new等的方式生成對象然后加載到對應(yīng)的JVM里,顯式裝載是程序員把需要的類加載器加載到內(nèi)存當(dāng)中。有兩種方法,分別是Class.forName以及java.lang.ClassLoader,其顯式加載很大程度上提高了程序的靈活性。任何類的加載都是經(jīng)由抽象類、ClassLoader類和其子類實現(xiàn),是屬于Java核心API的一部分,所有的自定義類加,載器必須得繼承以及實例化該類,其主要途徑有:

3.1 Class loadClass

用委托機制來加載該類,檢查此類加載器中要加載的項目是不是已經(jīng)加載過,是的話就返回到先搶加載過該類的對象,若是沒有被加載,就讓父類加載器加載,最后調(diào)用finaClass的方法查找該類。

3.2 Class findClass

可通過制定的二進制查找該類,用父類加載器檢查好所有請求的類以后,這個方法會被loadClass所調(diào)回,loadClass的缺省實現(xiàn)調(diào)用此方法,且能夠?qū)ζ涓采w定制。

3.3 Class defineClass

此種方法主要是把字節(jié)數(shù)組轉(zhuǎn)化成類的字節(jié)碼。

3.4 Class findSystem

用系統(tǒng)類的加載器加載該類文件,若有,為將該文件裝換成類,可以把其原始的字節(jié)轉(zhuǎn)換為Class對象。

3.5 Class findLoadedClass

若是Java虛擬機已經(jīng)把這個加載器記錄成二進制名稱的某個類加載器,就返回此二進制名稱的類。

4 Java動態(tài)類加載的運用

Java的動態(tài)類加載器能夠?qū)σ呀?jīng)完整的程序進行改造,其加載功能相當(dāng)強大,能夠通過控制類的加載過程,從而豐富程序功能,比如常用到的網(wǎng)絡(luò)頁面,建立了一個手機網(wǎng)站,后臺的分工十分細化。首先分配控制欄目以及公共功能,然后建立差異化和可拔插模塊,將靜態(tài)頁面動起來,以動態(tài)化的方式滿足不同人的需求。靈活性調(diào)整模塊的功能,讓系統(tǒng)更加靈活且最大化的擴展系統(tǒng)。同時這種動態(tài)的加載既在一定程度上降低了網(wǎng)頁受到惡性攻擊的風(fēng)險,也提升了系統(tǒng)的穩(wěn)定性與流暢性,讓用戶得到更好更深層次的體驗。

綜上所述,Java動態(tài)類加載毫無疑問是Java程序中具有動態(tài)性的關(guān)鍵機制,同時也是JVM的一項核心技術(shù),在程序設(shè)計領(lǐng)域中動態(tài)加載機制占據(jù)著重要的位置,它可以自定義的加載策略以及實現(xiàn)動態(tài)名字的空間,具有非常大的靈活性。深入學(xué)習(xí)Java動態(tài)類加載機制可以有效提高Java程序的質(zhì)量以及效率,本文主要對Java動態(tài)類加載機制做了一個簡要分析和探討,但是Java動態(tài)類加載的重點和運用絕對不僅限于這些,還有很多我們發(fā)現(xiàn)或者沒發(fā)現(xiàn)的作用和機理,這些都還有待日后的進一步探討。

參考文獻

[1]王萬森,龔文.Java動態(tài)類加載機制研究及應(yīng)用[J].計算機工程與設(shè)計,2011,06:2154-2158.

[2]崔行臣,趙佟.Java動態(tài)類加載機制分析及其應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2013,07:187-191.

[3]肖銀瑩,陳瑛,陳超.Java動態(tài)類加載機制研究及應(yīng)用[J].電子技術(shù)與軟件工程,2015,21:252.

作者簡介

朱丹丹(1969-),女,湖北省荊州市人。大學(xué)本科學(xué)歷。現(xiàn)為仙桃職業(yè)學(xué)院講師。研究方向為Java、Android應(yīng)用開發(fā)。

作者單位

仙桃職業(yè)學(xué)院 湖北省仙桃市 433000

主站蜘蛛池模板: 国产h视频在线观看视频| 一本大道AV人久久综合| 欧美97色| 免费一级毛片完整版在线看| 国产精品观看视频免费完整版| 日本免费一区视频| 国产女人在线视频| 亚洲区第一页| 国产乱子精品一区二区在线观看| 97国产在线观看| 国产精品网拍在线| 欧美日韩专区| 欧美成人第一页| 国产欧美精品午夜在线播放| 欧美精品综合视频一区二区| 日本国产一区在线观看| 精品久久国产综合精麻豆| 国产精品无码一二三视频| 国产精品香蕉| 91精品福利自产拍在线观看| 伊人激情综合网| 美女无遮挡被啪啪到高潮免费| 3344在线观看无码| 日本午夜视频在线观看| 成人自拍视频在线观看| 中文字幕不卡免费高清视频| 亚洲一级无毛片无码在线免费视频| 国产精品美女自慰喷水| 久久久无码人妻精品无码| 天堂成人在线| 亚洲国产中文在线二区三区免| 国产精品中文免费福利| 欧美精品亚洲精品日韩专区va| 欧美精品H在线播放| 国产精品刺激对白在线| 波多野结衣在线一区二区| 亚洲欧美成人综合| a国产精品| 国产99热| 国产日韩丝袜一二三区| 亚洲人成在线免费观看| 国产乱论视频| 午夜啪啪福利| 亚洲视频色图| 国产成人高清在线精品| 国产一区在线观看无码| 亚洲Av综合日韩精品久久久| 无码专区在线观看| 日本在线免费网站| 亚洲无码高清视频在线观看 | 一级毛片在线播放免费观看| 波多野结衣中文字幕久久| 手机永久AV在线播放| 精品伊人久久久久7777人| 午夜国产大片免费观看| 亚洲AV电影不卡在线观看| 成人夜夜嗨| 亚洲欧洲日产国产无码AV| 日韩福利视频导航| 狠狠色丁婷婷综合久久| 亚洲色图在线观看| 亚洲av综合网| 久久国产精品77777| 欧美.成人.综合在线| 亚洲天堂精品在线| 国产一区二区网站| 国产综合精品一区二区| www.日韩三级| 亚洲成人高清无码| 啪啪免费视频一区二区| 国产成人高清精品免费软件| 国产视频一区二区在线观看| 国产拍揄自揄精品视频网站| 国产欧美日韩18| 精品国产美女福到在线直播| 香蕉视频在线观看www| 国产精品永久久久久| 日韩性网站| 黄色网页在线播放| 宅男噜噜噜66国产在线观看| av一区二区三区高清久久| 国产成人精品无码一区二|