由來:
基本數(shù)據(jù)類型不能表示為對象,也就不能使用getClass的方式,基本類型就沒有類名的概念,也不能使用Class.forName的方式,引入內(nèi)置Class實(shí)例和數(shù)組實(shí)例就是為了解決該問題.
所有的數(shù)據(jù)類型都有class屬性
九大內(nèi)置Class實(shí)例:
JVM中預(yù)先提供好的Class實(shí)例,分別是:byte,short,int,long,float,double,boolean,char,void.
表示:byte.class short.class int.class ...void.class
public class BaseConstructorDemo {
public static void main(String[] args) {
//Class<Integer> clz = int.class; 因?yàn)榉盒椭唤邮諏ο?不接收基本數(shù)據(jù)類型,所以需要放 Integer進(jìn)去
Class byteClass = byte.class;
System.out.println(byteClass);
Class shortClass = short.class;
System.out.println(shortClass);
Class intClass = int.class;
System.out.println(intClass);
Class longClass = long.class;
System.out.println(longClass);
Class floatClass = float.class;
System.out.println(floatClass);
Class doubleClass = double.class;
System.out.println(doubleClass);
Class charClass = char.class;
System.out.println(charClass);
Class boolClass = boolean.class;
System.out.println(boolClass);
Class voidClass = void.class;
System.out.println(voidClass);
}
}
在8大基本數(shù)據(jù)類型的包裝類中,都有一個常量TYPE,用于返回該包裝類對應(yīng)基本數(shù)類的字節(jié)碼對象.
System.out.println(Integer.TYPE == int.class);//true
System.out.println(Integer.class == int.class);//false
數(shù)組的Class實(shí)例:
數(shù)組是引用數(shù)據(jù)類型,數(shù)組其實(shí)是對象.
如何來表示數(shù)組的Class實(shí)例?
方式1:數(shù)據(jù)類型.class;
方式2:數(shù)組對象.getClass();
++注意:所有的具有相同的維數(shù)和相同元素類型的數(shù)組共享同一份字節(jié)碼對象,和元素沒有任何關(guān)系.++
Class和Object的區(qū)別
Class:
描述所有的類型,所以Class類中應(yīng)該具有所有類型的相同的方法.
Object:
描述所有的對象,所以在Object類中應(yīng)該具有所有對象的共同的方法.