反射、注解、动态代理的理解

反射

  • 反射的核心就是拿到了.java编译后的.class文件。通过一系列的API,可以拿到该类中的成员:构造器、属性、方法等。

注解

  • 注解,可以告诉编译器或者JVM做一些事情。比如说重写的@Override注解,可以让编译器检查重写是否正确。
  • 注解的解析,这个就也用到了反射的知识。注解加在了哪个成员上,就先通过反射拿到这个对象。比如说注解加在Method上面,就拿到这个Method对象,再通过API去解析该注解中的值。
  • 注解的元注解@Retention
  • runtime:直到运行该程序,该注解也会被保存。表示代码运行(被JVM虚拟机加载class文件)时,该注解仍然存在于它所加的地方
  • class:保存到.java文件被编译成.class文件。.class文件被jvm运行时,该注解就失效
  • source:只保存于.java文件中,当.java文件被编译成.class文件时,注解就失效

还有一个就是动态代理。被代理类一般是接口的实现类,通过代理,生成代理类。代理类对象具有被代理类的所有方法,并且可以给方法进行增强。

Original: https://www.cnblogs.com/pzistart/p/16738435.html
Author: pzistart
Title: 反射、注解、动态代理的理解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616756/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球