Java基础-反射

  1. 通过代码去创建一个对象,不用new
  2. Class类:用于收集其它类的类信息,形成Class对象
  3. 反射获取类信息的方式有哪三种?(面试点)
    1. Object.class;
    2. Object.getClass()
    3. Class.forName(String className)
  4. 反射通过newInstance方式获取类的实例(面试点)
    1. Object o=Class.forName(String className).newInstance()
  5. 为什么要使用反射?
  6. 没有主方法借助其他程序运行,不能独立运行
  7. 调用任何非静态方法之前生成类的实例,非静态方法只能通过实例调用
  8. 注解的作用:内存中加一个标记,使用的时候通过反射拿出来,servlet中的@WebServlrt就是一个注解
  9. 反射主要用于框架,因为框架开发者不能预测使用者定义的类信息,所以只能通过反射方式拿使用这定义的类的信息。以servlet框架为例,@webServlet(“”)存的是类的路径,servlet在tomcat中运行时,这个被反射拿出来通过Class.forName(“”)等方法获取类信息,然后再使用newInstance方法获取类的实例。然后实现我们在servlet项目中编写的内容。
  10. 我们在编程时看到的一切信息都可以被反射拿到,捕获到
  11. 注解:有自定义注解,
  12. An开头的全都是注解,getAn…获取注解

  1. 框架的核心是反射
  2. 反射的时候能不能获取私有信息?(面试点)可以,要改一下Constructor. setAccessible(true);
  3. Tomcat通过反射拿到servlet的实例
  4. Java的反射只能获取信息不能执行
  5. 我们直接写出来的叫直接执行
  6. 代理执行:通过代码来执行的叫代理执行
  7. Object.invoke()执行代理时使用
  8. 通过代理机制可以调用反射拿到的任何方法,
  9. Method.invoke(),方法为静态方法时参数(null,参数),非静态方法是(对象名,参数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值