• 2-1-2-05反射概述


    反射:设计框架的灵魂

      框架:半成品软件,可以在框架的基础上进行开发,可以简化代码编写

      反射:将类的各个组成部分封装为其他对象,这就是反射机制

      好处:

        1.可以在程序运行的过程中操作这些对象

        2.可以解耦,提高程序的可扩展性

    String str = new String();//实例化对象
            //经过反射机制,将String对象抽取出来封装到Class类对象中的Method[]中,当调用方法时就显示Method[]中的所有方法,再选择调用哪个方法
            str.length();
    
        }

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

  • 相关阅读:
    菜鸟学IT之豆瓣爬取初体验
    菜鸟学IT之python网页爬取多页爬取
    菜鸟学IT之python网页爬取初体验
    菜鸟学IT之python词云初体验
    菜鸟学IT之python3关于列表,元组,字典,集合浅认识!
    整合ssm框架
    MyBatis
    服务出现服务名无效的原因及解决方法
    数据库(三)
    数据库(二)
  • 原文地址:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/13340454.html
Copyright © 2020-2023  润新知