java基础之反射机制
来源:互联网 发布:在淘宝买衣服怎么付款 编辑:程序博客网 时间:2024/05/21 07:55
java反射机制:在运行状态中,对于任何一个类(class文件)都能够知道这个类的属性和方法。这种动态获取信息和动态调用对象的方法的功能称之为java语言的反射机制。(简单说就是动态获取类中的信息)
Tomcat提供了处理请求和应答的方式。因为具体的处理动作不同,所以对外提供了接口(服务器端脚本片段 interface Servlet,没创建一个web应用程序都跟随一个web.xml配置文件),由开发者来实现具体的请求和应答处理。
相关问题:
1、如何实现对指定字节码文件的加载,获取其中的内容并调用?通过反射机制。(想要对一个类进行解剖,只要获取该类的字节码文件即可,在通过反射机制完成解剖)
2、反射的基本步骤:
(1)获取Class()文件,即获取指定名称的字节码文件对象。(反射就是通过Class()文件完成的,该类可以获取该类中的所有内容)
(2)获取类的属性、方法或构造函数。
(3)访问属性、调用方法、调用构造函数创建对象。
3、获取Class().类实例的三种方法?
(1)调用类本身的.class属性:
Class class1 = Person.class;System.out.println(class1.getName());(2)通过类的对象获取:
Person p = new Person();Class class2 = p.getClass();System.out.println(class2.getName());(3)通过class类中的forName方法获取:只要有类的名称即可,方便扩展性强。(名称必须包含具体路径)
String className = "cn.itcast.bean.Person";Class class3 = class.forName(className);System.out.println(class3.getName());
4、开发中哪里用到的反射技术?
数据库JDBC中通过Class.forName(Driver).来获得数据库连接驱动。
Class.forName("com.mysql.jdbc.Driver"); 就是利用反射原理返回一个类对象。
jdbc中有一行代码:Class.forName('com.MySQL.jdbc.Driver.class').newInstance();那个时候只知道生成驱动对象实例,后来才知道,这就是反射,现在很多框架都用到反射机制,hibernate,struts都是用反射机制实现的。
5、java反射技术常用的API:
java.lang.reflect.Field 返回字段.
java.reflect.Method 返回方法.
java.lang.reflect.Constructor 返回参数.
6、java反射机制提供了什么功能?
在运行时能够判断任意一个对象所属的类、在运行时构造任意一个类的对象、在运行时判断任意一个类所具有的成员变量和方法、在运行时调用任一对象的方法、在运行时创建新类对象
7、反射机制的优缺点?
静态编译:在编译时确定类型,绑定对象,即通过
动态编译:运行时确定类型,绑定对象。动态编译最大限度的发挥了java的灵活性,体现了多态的应用,有利于降低类之间的耦合性。
一句话,反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性,特别是在J2EE的开发中 它的灵活性就表现的十分明显。比如,一个大型的软件,不可能一次就把把它设计的很完美,当这个程序编 译后,发布了,当发现需要更新某些功能时,我们不可能要用户把以前的卸载,再重新安装新的版本,假如 这样的话,这个软件肯定是没有多少人用的。采用静态的话,需要把整个程序重新编译一次才可以实现功能 的更新,而采用反射机制的话,它就可以不用卸载,只需要在运行时才动态的创建和编译,就可以实现该功 能。 它的缺点是对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它 满足我们的要求。这类操作总是慢于只直接执行相同的操作。
- java反射机制之基础
- java反射机制之基础
- java基础之反射机制
- Java基础之反射机制
- java基础之反射机制
- java 基础之--java的反射机制
- Web基础之Java中的反射机制
- java反射机制基础
- java基础:反射机制
- JAVA基础--反射机制
- 【JAVA基础】反射机制
- 【java基础】Java反射机制
- 【java基础】java反射机制
- Java 之反射机制
- java之反射机制
- java之反射机制
- java之反射机制
- Java之:反射机制
- ssh框架配置
- magento中产品图片问题
- 3月11日总结
- 内存优化
- Mac下Mysql的root用户密码忘记了
- java基础之反射机制
- 插入排序
- 自定义View,继承View
- 安卓自定义弹幕View BarrageView,画笔实现
- 日常练习(9)
- 文件上传备录(使用servlet)
- 数据结构与算法-排序(一)
- JSPatch
- Java泛型通配符<? extends T>与<? super T>