java reflection - reflecting object acquires

java.lang.Class object acquisition mode

@SuppressWarnings("all") //压制警告
public class Deam {

public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException  {

    try {
//一个类被加载后,jvm会创建一个对应类的Class对象,类的整个信息会放到对应的Class对象中
        Class c=Class.forName("cn.sxt.in.Demo");
        System.out.println(c);

        //类名.class 获取Class对象
        Class strc=String.class;
        //对象.getClass()获取Class对象
        String path="a";
        Class strc2=path.getClass();  //和上面的String的Class对象是同一个
        System.out.println(strc==strc2);  //true

        Class intc=int.class;  //获取int的Class对象

        int[] a=new int[10];
        int[] a2=new int[20];   //得到的数组的Class对象都是同一个
        String[] a3=new String[10];  //不同类型的数组和不同维度的数组得到的Class对象不同

        System.out.println(a.getClass().hashCode());
        System.out.println(a3.getClass().hashCode());

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

}

}

Guess you like

Origin blog.51cto.com/14437184/2437392