1. 程式人生 > >java findLoadedClass實踐

java findLoadedClass實踐

該方法官方文件的解釋:

Returns the class with the given binary name if this loader has been recorded by the Java virtual machine as an initiating loader of a class with that binary name.

經過實踐,結論如下:

1.主動呼叫ClassLoader的loadClass載入一個類,但該ClassLoader並不是被載入類的定義類載入器,那麼後面該ClassLoader的findLoadedClass方法總是回返回null;如果該ClassLoader是被載入類的定義類載入器,則findLoadedClass會返回對應的Class;

2.如果是JVM自己根據類載入機制載入的Class,那麼被載入類的初始類載入器(initiating loader)和被載入類的定義類載入器(defining loader),它們的findLoadedClass均會返回被載入的Class;

思考

根據官方文件的說明,如果是初始類載入器,按說findLoadedClass都會返回對應的Class,但根據結論1其並未返回,所以我猜測在主動呼叫載入Class情況下,並沒有標記對應的初始類載入器;

呼叫loadClass的載入器和定義類載入器之間,如果還有別的類載入器,它們都不會被標記為被載入類的初始類載入器,它們的findLoadedClass都會返回null;

相關推薦

java findLoadedClass實踐

該方法官方文件的解釋: Returns the class with the given binary name if this loader has been recorded by the Java virtual machine as an initiating l

Java-Exception實踐

loser example tca 文檔 ... 拋出異常 otf 由於 ring 在Java中處理異常並不是一個簡單的事情。不僅僅初學者很難理解,即使一些有經驗的開發者也需要花費很多時間來思考如何處理異常,包括需要處理哪些異常,怎樣處理等等。這也是絕大多數開發團隊都會制定

java 最佳實踐

ava char font 表數 對象比較 字符串類型 占用 read 大表 一: 不要直接new一個thread,應當使用線程池。使用線程池的時候應當對線程數量大小合理設置,一般最大不超過50個,當然還需要考慮你的IO和CPU,怎麽分析網上搜搜吧。 二:容器類變量,如果變

java 補碼實踐

system 進行 由於 -- 的確 結果 sys 二進制 tro java中的數字都是以補碼的形式出現 java中的byte要轉為數字也是以補碼的形式進行的轉換 ================================================= 負數的補碼

java基礎實踐專案(構建商場購物管理系統)

說明: 本專案參考https://github.com/zhanglei-workspace/shopping-management-system裡面的專案思路進行學習和 編寫。 構建思路: 使用模組化程式設計的思想: 1. 先設計出資料庫,主要包括3個表,商品表,售貨員表,已售出商

java web實踐

語言:java、javascript 軟體:eclipse、mysql   環境配置:下載jdk;配置jdk環境變數。相關教程:https://jingyan.baidu.com/article/db55b609fa946e4ba20a2f56.html   配置Tomcat、以及mysql

Java作業實踐(一)魔板遊戲

課題:魔板遊戲 一、課設要求 1.基本功能 (1)遊戲規則 一個3×3的魔板,有一個格子是空的,其他格子內隨機放置1-8共8個編號的方塊,通過單擊任意一個與空格子相鄰的方塊可以把該方塊移入空格子,不斷的移動方塊,直到方塊一行一行的按數字順序排好。 (2)程式功能

java併發實踐第0部分

1.執行緒有些時候比成為輕量級程序  lightweight process ,並且大多數線代作業系統把執行緒作為時序排程的基本單元,而不是程序。執行緒貢獻所屬程序的記憶體地址空間,所以同一程序中的所有執行緒訪問相同的變數,並從一個堆中分配物件。 2.不安全的執行緒

Java 程式設計】Java 開發實踐與經驗:BetterJava

文章目錄 1. 風格 2. 依賴注入 3. 避免使用 null 4. Immutable-by-default 5. 介面預設方法代替各種 util 類 6. Streams 7. 部署 8. Maven

超萌新級的Java專案實踐——五子棋(三)

這部分內容需要一定的資料結構的基礎,這一部分講解一下五子棋的AI演算法的思路和解決方案。 首先講一下演算法的概念:解題方案的準確而完整的描述簡單點說,就是解決問題用的方法的描述。 例如:比較經典的揹包問題,即將一堆物品裝進揹包,求裝入揹包的物品最高價值的值解決這種問題,有

java web 實踐專案(搭建web留言系統)

宣告:這是實踐java的第二個專案,它主要包括以下知識: 前端:html css javascript 服務端: tomcat伺服器,servlet ,jsp 後端:java 資料庫:mysql 這個專案是思路來自於本校的一位學長:https://blog.csdn.net/qq

java 上機實踐四 類與物件

實驗一,機動車: 實驗目的:理解類和物件的屬性和公能 主類 public class Main{ public static void main(String args[]){ Vehicle car1=new Vehicle(); Vehicle car2=ne

手把手教你從0到1進行Java專案實踐

手把手教你從0到1進行Java專案實踐 雖說工作就是簡單的事情重複做,但不是所有簡單的事你都能有機會做的。 我們平日工作裡,大部分時候都是在做修修補補的工作,而這也是非常重要的。做好修補工作,做好優化工作,足夠讓你升職加薪! 但是如果有機會,去嘗試些自己平日裡少做的事,我覺得是一件值得慶

Java反射實踐:從反射中理解Class

寫在前面 今天在需求評審的時候,遇到了挺有意思的要求。需求是什麼樣子就不說了。總之完成這個需求需要一個呼叫系統api的操作。然而這個api因為並不穩定的原因。被谷歌hide掉了。 這個時候我們最直接的方式就是去通過反射去呼叫這個系統api。(當然這種方式治標

java專案實踐】在eclipse中使用利用mybatis-generator自動生成Model、Dao、mapping程式碼

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Conf

【Kotlin】Kotlin與Java反射實踐

Google發話Kotlin成為Android開發的一級語言,然後Kotlin就瞬間火了起來,各種教程什麼的也席捲而來,不過大部分都差不多,語法、用法、規範,或是官方文件、或是中文翻譯,無論看哪個都一樣。 本篇主要是在學習中的對Kotlin反射的一點記錄,在開發An

Java爬蟲實踐:Jsoup+HttpUnit爬取今日頭條、網易、搜狐、鳳凰新聞

0x0 背景 最近學習爬蟲,分析了幾種主流的爬蟲框架,決定使用最原始的兩大框架進行練手: Jsoup&HttpUnit 其中jsoup可以獲取靜態頁面,並解析頁面標籤,最主要的是,可以採用類似於jquery的語法獲取想要的標籤元素,例如: /

java專案實踐】詳解Ajax工作原理以及實現非同步驗證使用者名稱是否存在+原始碼下載(java版)

      一年前,從不知道Ajax是什麼,伴隨著不斷的積累,到現在經常使用,逐漸有了深入的認識。今天,如果想開發一個更加人性化,友好,無重新整理,互動性更強的網頁,那您的目標一定是Ajax。 介紹

java演算法實踐 將list中的元素按照屬性分類成樹狀的map

java演算法實踐,同時也是一個有用的工具類。例如:一個學生資訊的list,學生的資訊由班級、性別、學號等,將list按照班級、性別分類。只需:     Map map = CollectionTools.classifyList(studentAllList,     "

大文件拆分問題的java實踐(附源碼)

解決方案 初始化 問題 申請 border output 思想 行數據 時延 引子 大文件拆分問題涉及到io處理、並發編程、生產者/消費者模式的理解,是一個很好的綜合應用場景,為此,花點時間做一些實踐,對相關的知識做一次梳理和集成,總結一些共性的處理方案和思路,以供後續工