class轉java是什么,讓我們一起了解下?
在Java中,每個class都有一個相應的Class對象。也就是說,當我們編寫一個類,編譯完成后,在生成的.class文件中,就會產生一個Class對象,用于表示這個類的類型信息。
獲取Class實例的三種方式:
(1)利用對象調用getClass()方法獲取該對象的Class實例;
(2)使用Class類的靜態方法forName(),用類的名字獲取一個Class實例(staticClass forName(StringclassName)? Returns the Classobject associated with the class or interface with the given stringname. );
(3)運用.class的方式來獲取Class實例,對于基本數據類型的封裝類,還可以采用.TYPE來獲取相對應的基本數據類型的Class實例在newInstance()調用類中缺省的構造方法ObjectnewInstance()(可在不知該類的名字的時候,常見這個類的實例) Creates a new instance of the class represented by this Classobject.
在運行期間,如果我們要產生某個類的對象,Java虛擬機(JVM)會檢查該類型的Class對象是否已被加載。如果沒有被加載,JVM會根據類的名稱找到.class文件并加載它。一旦某個類型的Class對象已被加載到內存,就可以用它來產生該類型的所有對象。
實際案例代碼如下:
1?public?class?ClassTest?{undefined 2?public?static?void?main(String?[]?args)throws?Exception{undefined 3?String?str1="abc"; 4?Class?cls1=str1.getClass(); 5?Class?cls2=String.class; 6?Class?cls3=Class.forName("java.lang.String"); 7?System.out.println(cls1==cls2); 8?System.out.println(cls1==cls3); 9?} 10?}
返回結果為:true,true.
解釋:虛擬機只會產生一份字節碼,?用這份字節碼可以產生多個實例對象。
以上就是小編今天的分享了,希望可以幫助到大家。