2-1-2-06 获取class对象的三种方式

获取class对象的方式:

  1.Class.forName("全类名"):将字节码文件加载进内存,返回Class文件对象(在Source源代码阶段的调用)

  2.类名.class:通过类名的属性class获取(在Class类对象阶段的调用)

  3.对象名.getClass():getClass()方法是Object类中的方法(在Runtime运行阶段的调用)

//1.Class.forName("全类名");
        Class aClass = Class.forName("reflect.ReflectEntity2");
        System.out.println(aClass);

        //2.类名.Class;
        Class reflectEntity2Class = ReflectEntity2.class;
        System.out.println(reflectEntity2Class);

        //3.对象.getClass();
        ReflectEntity2 reflectEntity2 = new ReflectEntity2();
        Class aClass1 = reflectEntity2.getClass();
        System.out.println(aClass1);

        //比较三者地址值是否相同
        System.out.println(aClass==reflectEntity2Class);//true
        System.out.println(aClass==aClass1);//true
        System.out.println(reflectEntity2Class==aClass1);//true

输出结果:

 结论:

  同一个字节码文件(*.class)在一次程序运行的过程中只会被加载一次,不论哪种方式获取的对象都是同一个

原文地址:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/13340463.html