Class對象(字節碼對象)


Class對象(字節碼對象)

        java世界里,一切都是對象,可分為兩種對象,Class對象和實例對象。每個類的運行時的類型信息就是用Class對象表示的。它包含了與類有關的信息。其實我們的實例對象就通過Class對象來創建的。

       每一個類都有一個Class對象,每當編譯一個新類就產生一個Class對象,基本類型 (boolean, byte, char, short, int, long, float, and double)有Class對象,數組有Class對象,就連關鍵字void也有Class對象(void.class)。Class對象對應着java.lang.Class類,如果說類是對象抽象和集合的話,那么Class類就是對類的抽象和集合。

        Class對象是在類加載的時候由java虛擬機(JVM)以及通過調用類加載器中的 defineClass 方法自動構造的

一個類被加載到內存到供我們使用三個階段:加載,連接,初始化

        所有的類都是在對其第一次使用時,動態加載到JVM中的(懶加載)。當程序創建第一個對類的靜態成員的引用時,就會加載這個類。使用new創建類對象的時候也會被當作對類的靜態成員的引用。因此java程序程序在它開始運行之前並非被完全加載,其各個類都是在必需時才加載的。這一點與許多傳統語言都不同。

 

 

 

Class對象的三種獲取方式:

  1. 類名.class——不會自動加載
  2. 實例化對象.getClass()
  3. Class.forName(包名+類名)——如果類沒被加載呢,賊會自動加載

 


免責聲明!

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



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