理解Java中的反射

作者: 不断输入却没有输出的小轩 | 来源:发表于2018-03-18 16:10 被阅读0次

反射的理解

1、JVM虚拟机加载 .class文件流程

2、假设Object o = new Object( ); 执行首先JVM会启动,你的代码会编译成一个.class文件,然后被类加载器加载进jvm的内存中,你的类Object加载到方法区中,创建了Object类的class对象到堆中,注意这个不是new出来的对象,而是类的类型对象,每个类只有一个class对象,作为方法区类的数据结构的接口。jvm创建对象前,会先检查类是否加载,寻找类对应的class对象,若加载好,则为你的对象分配内存,初始化也就是代码:new Object()。

3、理解反射在什么场景下使用

程序对象是自己new的,程序相当于写死了给jvm去跑。假如一个服务器上突然遇到某个请求哦要用到某个类,但没加载进jvm,是不是要写new一下,启动一下服务器。

4、反射是什么呢?

当我们的程序在运行时,需要动态的加载一些类这些类可能之前用不到所以不用加载到jvm,而是在运行时根据需要才加载,这样的好处对于服务器来说不言而喻,举个例子我们的项目底层有时是用mysql,有时用oracle,需要动态地根据实际情况加载驱动类,这个时候反射就有用了。

假设com.java.dbtest.myqlConnection,com.java.dbtest.oracleConnection这两个类我们要用,这时候我们的程序就写得比较动态化,通过Class tc

=Class.forName("com.java.dbtest.TestConnection");通过类的全类名让jvm在服务器中找到并加载这个类,而如果是oracle则传入的参数就变成另一个了。这时候就可以看到反射的好处了,这个动态性就体现出java的特性了!举多个例子,大家如果接触过spring,会发现当你配置各种各样的bean时,是以配置文件的形式配置的,你需要用到哪些bean就配哪些,spring容器就会根据你的需求去动态加载,你的程序就能健壮地运行。

反射的使用

5.1 三种加载获取.class对象的方式(图5-1):

第一种:对象已经创建,没有必要利用反射获取.class文件。

第二种:需要导入类的包,依赖太强,不导包就抛编译错误。

第三种:一个字符串可以传入也可写在配置文件中等多种方法。(常见)

                                                                            图5-1

5.2通过反射获取构造方法

5.3 获取成员变量并调用

5.4 获取成员方法并调用

5.5 反射其他的应用

http://blog.csdn.net/sinat_38259539/article/details/71799078

相关文章

  • Java面试题之JavaSE高级

    一、Java中的反射 1.说说你对Java中反射的理解 java中的反射首先是能够获取到Java...

  • Java高级题

    此文非原创,来源网络上的面试题 Java中的反射 1.说说你对Java中反射的理解 java中的反射首先是能够获取...

  • 理解java中的反射

    往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用...

  • 理解Java中的反射

    反射的理解 1、JVM虚拟机加载 .class文件流程 2、假设Object o = new Object( );...

  • Java 反射机制

    [1]. java反射详解[2]. Java Reflection(反射机制)详解[3]. 深入理解Java类型...

  • 总结

    java基础 Java中多态的理解 反射 Java序列化与反序列化 Volatile和Synchronized e...

  • Java中反射学习系列教程之二

    在上一篇文章《Java中反射学习系列教程之一》中我们学了什么是反射;反射中的反字怎么理解;以及反射的特点。今天我们...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • Java反射理解

    Java反射理解 Java类型信息 RTTI(运行时类型识别)源于《Thinking in Java》一书,其作用...

  • Java互联网公司-经典面试题附答案

    基础:Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?优点:反射具有解耦性,缺点:反射属...

网友评论

    本文标题:理解Java中的反射

    本文链接:https://www.haomeiwen.com/subject/jwpoaxtx.html