日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
談JAVA靜態(tài)載入的兩種方式

你對JAVA靜態(tài)載入了解嗎?如果你了解,你了解多少呢?下面就為你介紹JAVA的靜態(tài)載入。

創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站備案、服務(wù)器租用、空間域名、軟件開發(fā)、小程序定制開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站電話聯(lián)系:18980820575

JAVA靜態(tài)載入的時候需要思索到安全要素,這個問題就是我們必須解決的問題。下面我們就看看如何才能更好的解決相關(guān)安全下面的問題。 希望大家從中吸取相關(guān)的知識。

我們試想一下, 假如不運(yùn)用這種委托模式,那我們就可以隨時運(yùn)用自定義的String來靜態(tài)替代java中心api中定義類型,這樣會存在十分大的安全隱患,而雙親委托的方式,就可以防止這種情況,因為String已經(jīng)在啟動時被加載,所以用戶自定義類是無法加載一個自定義的ClassLoader。

java靜態(tài)載入class的兩種方式:

implicit隱式, 即應(yīng)用實例化才載入的特性來java靜態(tài)載入入class。

explicit顯式方式, 又分兩種方式:

java. lang. Class的forName()辦法

java. lang. ClassLoader的loadClass()辦法

用Class. forName加載類

Class. forName運(yùn)用的是被調(diào)用者的類加載器來加載類的。

這種特性, 證明了java類加載器中的稱號空間是***的, 不會相互攪擾。

即在一般情況下, 保證同一個類中所關(guān)聯(lián)的其他類都是由以后類的類加載器所加載的。

以下是代碼片段:

 
 
 
  1. public static Class forName(String className) 
  2. throws ClassNotFoundException { 
  3. return forName0(className, true , ClassLoader. getCallerClassLoader()); 
  4. /** Called after security checks have been made. */ 
  5. private static native Class forName0(String name, boolean initialize, 
  6. ClassLoader loader) 
  7. throws ClassNotFoundException; Java代碼 
  8. public static Class forName(String className) 
  9. throws ClassNotFoundException { 
  10. return forName0(className, true , ClassLoader. getCallerClassLoader()); 
  11. /** Called after security checks have been made. */ 
  12. private static native Class forName0(String name, boolean initialize, 
  13. ClassLoader loader) 
  14. throws ClassNotFoundException;

下面中 ClassLoader. getCallerClassLoader 就是失掉調(diào)用以后forName辦法的類的類加載器static塊在什么時候執(zhí)行?

當(dāng)調(diào)用forName(String)載入class時執(zhí)行, 假如調(diào)用ClassLoader. loadClass并不會執(zhí)行. forName(String, false, ClassLoader)時也不會執(zhí)行,假如載入Class時沒有執(zhí)行static塊則在***次實例化時執(zhí)行. 比如new , Class. newInstance()操作static塊僅執(zhí)行一次, 各個java類由哪些classLoader加載?

java類可以通過實例. getClass. getClassLoader()得知接口由AppClassLoader(System ClassLoader, 可以由ClassLoader. getSystemClassLoader()取得實例)載入ClassLoader。類由bootstrap loader載入NoClassDefFoundError和ClassNotFoundException。

NoClassDefFoundError:當(dāng)java源文件已編譯成. class文件, 但是ClassLoader在運(yùn)行期間在其搜索途徑load某個類時, 沒有找到. class文件則報這個錯。

ClassNotFoundException:試圖通過一個String變量來創(chuàng)建一個Class類時不成功則拋出這個異常。

以上就是對java靜態(tài)載入的介紹,希望對你有幫助。


網(wǎng)頁題目:談JAVA靜態(tài)載入的兩種方式
網(wǎng)頁URL:http://www.5511xx.com/article/cogdjpg.html