Java的反射

什么是反射机制?

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

静态编译和动态编译

    **静态编译:**在编译时确定类型,绑定对象

    **动态编译:**运行时确定类型,绑定对象

反射机制优缺点

    优点: 运行期类型的判断,动态加载类,提高代码灵活度。

    缺点: 性能瓶颈:反射相当于一系列解释操作,通知 JVM 要做的事情,性能比直接的java代码要慢很多。

反射机制的应用场景有哪些?

模块化的开发,通过反射去调用对应的字节码;动态代理设计模式也采用了反射机制,还有我们日常使用的 Spring/Hibernate 等框架也大量使用到了反射机制。

Java获取反射的三种方法

1.通过new对象实现反射机制  实例.getClass()

2.通过路径实现反射机制      Class.forName(“”)

3.通过类名实现反射机制      类名.class

   

public class Get {

        //获取反射机制三种方式

        public static void main(String[] args) throws ClassNotFoundException {

            //方式一(通过建立对象)

            Student stu = new Student();

            Class classobj1 = stu.getClass();

            System.out.println(classobj1.getName());

            //方式二(所在通过路径-相对路径)

            Class classobj2 = Class.forName("fanshe.Student");

            System.out.println(classobj2.getName());

            //方式三(通过类名)

            Class classobj3 = Student.class;

            System.out.println(classobj3.getName());

        }

    }

 

 

posted @ 2020-12-16 22:56  海绵-宝宝  阅读(94)  评论(0编辑  收藏  举报