反射中Class.forname函數與ClassLoader.getSystemClassLoader().loadClass的區別


Class.forName加載類是將類進了初始化(相當於調用無參構造函數,會調用static靜態代碼來初始化配置),

而ClassLoader的loadClass並沒有對類進行初始化,只是把類加載到了虛擬機中。

應用場景

在我們熟悉的Spring框架中的IOC的實現就是使用的ClassLoader。

而在我們使用JDBC時通常是使用Class.forName()方法來加載數據庫連接驅動。這是因為在JDBC規范中明確要求Driver(數據庫驅動)類必須向DriverManager注冊自己。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM