ZC_01_获取Class对象

1、

package reflectionZ;

public class TreflectionZ
{
    public static void main(String[] args) throws ClassNotFoundException
    {
        // 得到 Cat的 Class对象(3种方式)
        // 1、通过 forName
        Class<?> clazz1 = Class.forName("reflectionZ.Cat"); // ZC: 会报异常"ClassNotFoundException"
        System.out.println("clazz1 : "+clazz1+" , "+clazz1.hashCode());
        // 2、通过 class属性
        Class<?> clazz2 = Cat.class;
        System.out.println("clazz2 : "+clazz2+" , "+clazz2.hashCode());
        // 3、通过 对象实例.getClass()
        Cat cat = new Cat();
        Class<?> clazz3 = cat.getClass();
        System.out.println("clazz3 : "+clazz3+" , "+clazz3.hashCode());
        
        System.out.println("*** *** ***");
        if (clazz1 == clazz2)
            System.out.println("clazz1 == clazz2");
        else
            System.out.println("clazz1 != clazz2");
        if (clazz1 == clazz3)
            System.out.println("clazz1 == clazz3");
        else
            System.out.println("clazz1 != clazz3");
        if (clazz2 == clazz3)
            System.out.println("clazz2 == clazz3");
        else
            System.out.println("clazz2 != clazz3");
        // ZC: 上面三个判断 都是相等,可见 java中的对象的比较,比较的是 变量所指向的对象   而非变量本身 ... ! ! !
    }
}

class Cat
{}

2、

控制台输出:

clazz1 : class reflectionZ.Cat , 8152936
clazz2 : class reflectionZ.Cat , 8152936
clazz3 : class reflectionZ.Cat , 8152936
*** *** ***
clazz1 == clazz2
clazz1 == clazz3
clazz2 == clazz3

3、

原文地址:https://www.cnblogs.com/javaskill/p/5430171.html