首先要了解一个类 Class
Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是:Class
例:
package laladin.learn
public class ReflectTest {
public static void main(String[] args) thows Excepiton{
String str1="abc";
Class cls1=str1.getClass(); //得到String的字节码
Class cls2=String.class; //得到String的字节码
Class cls3=Class.forName("java.lang.String") //得到String的字节码
System.out.println(cls1==cls2);
System.out.println(cls2==cls3);
//返回两个True,说明三种方式得到的字节码,其实都是同一份字节码。
System.out.println(cls1.isPrimitive());//是否是原始类型。返回false,String不是基本类型的字节码
System.out.println(int.class.isPrimitive());//返回True ,代表int.class字节码是基本类型字节码
System.out.println(int.class==Integer.class);返回false
System.out.println(int.class==Integer.Type);返回True,Integer.Type代表Integer所在的基本类型的字节码
//基本类型:boolean,byte,char,short,int,long,float,double,void
System.out.println(int[].class.isPrimitive());数组也不是原始类型,因此返回false
System.out.println(int[].class.isArray());类型的Class是否是数组,用isArray()
//总之,只要是在源程序中出现的类型,都有各自的Class实例对象,例如,int[],void...
}
}