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)在一次程序运行的过程中只会被加载一次,不论哪种方式获取的对象都是同一个
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号