最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android類加載ClassLoader雙親委托機制詳解

 更新時間:2023年07月07日 11:18:14   作者:載漁之洲  
這篇文章主要為大家介紹了Android類加載ClassLoader雙親委托機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

一、ClassLoader類圖關系

ClassLoader、BootClassLoader、BaseDexClassLoader等之間關系,如下如:

二、雙親委托機制

1、定義

如果某個類加載器在加載類時,先不會自己去嘗試加載這個類,而是首將加載任務委托給父類加載器,依次遞歸,如果父類加載器可以完成類加載任務,就成功返回;只有父類加載器無法完成此加載任務或者沒有父類加載器時,才會交給自己嘗試加載。

如:可以看到創(chuàng)建 ClassLoader 需要接收一個 ClassLoader parent 參數。這個 parent 的目的就在于實現類加載的雙親委托

protected Class<?> loadClass(String name, boolean resolve)
        throws ClassNotFoundException
    {
            // First, check if the class has already been loaded
            // 檢查class是否有被加載
            Class<?> c = findLoadedClass(name);
            if (c == null) {
                try {
                    if (parent != null) {
                        //如果parent不為null,則調用parent的loadClass進行加載
                        c = parent.loadClass(name, false);
                    } else {
                        //parent為null,則調用BootClassLoader進行加載
                        c = findBootstrapClassOrNull(name);
                    }
                } catch (ClassNotFoundException e) {
                    // ClassNotFoundException thrown if class not found
                    // from the non-null parent class loader
                }
                if (c == null) {
                    // If still not found, then invoke findClass in order
                    // to find the class. 
                    // 如果都找不到就自己查找
                    c = findClass(name);
                }
            }
            return c;
    }

2、雙親作用

1)、避免重復加載,當父加載器已經加載了該類的時候,就沒有必要子ClassLoader再加載一次。

2)、安全性考慮,防止核心API庫被隨意篡改。

以上就是Android類加載ClassLoader的詳細內容,更多關于Android類加載ClassLoader的資料請關注腳本之家其它相關文章!

相關文章

最新評論

绥棱县| 依兰县| 平阴县| 宣城市| 五寨县| 方正县| 新沂市| 仪征市| 高阳县| 留坝县| 通渭县| 偃师市| 呼和浩特市| 广平县| 刚察县| 上饶市| 五寨县| 个旧市| 盐城市| 奉节县| 长治县| 南昌县| 通海县| 石家庄市| 邢台市| 应城市| 尼木县| 新干县| 南澳县| 静宁县| 嵊泗县| 白朗县| 汉源县| 萨嘎县| 邛崃市| 十堰市| 通山县| 崇明县| 西城区| 仁布县| 龙游县|