JavaSE-注解与反射(框架底层实现机制)

注解(Annotation)JDK5.0引入

内置注解:

  • @Override:重写方法
  • @Deprecated:废弃
  • @SuppressWarnings:镇压警告

元注解(meta-annotation): 可自定义注解

  • @Target:描述注解的使用范围,传入value参数指定
  • @Retention:描述注解的生命周期,传入value参数指定 (runtime>class>sources)
  • @Documented:是否生成注解在Javadoc种
  • @Inherited:子类可以继承父类的注解

自定义注解

  • @interface 注解名{} 属性为注解的参数:可以使用默认值

反射(框架设计的灵魂)

实现动态(Reflection)自顶向下

**反射创建对象:**从实例化对象获得Class类(与new的方式相反)
Class.forName(“全限定类名”) 获取 Class对象,可以用Class对象实例化对象 ,一个类在内存中只有一个Class对象,在类被加载后,类会被封装在其中
获得Class类的方式:
类.getClass、Class.forName("")
Class类可以获取类的相关信息

Java内存:

*堆:*存放new的对象和数组、线程共享
*栈:*引用变量
方法区(堆):类的数据

类的加载:

  1. 类加载器ClassLoader(有类缓存的-JVM垃圾回收):类的Class类读入内存创建Class对象
  2. 类的Link:类的二进制数据合并到JRE
  3. 类的初始化:JVM执行类构造器()

通过反射创建对象本质是无参构造
也可以通过构造器创建对象Class.getDeclaredConstructor
Class(对象).getDeclaredXXX获取相关XXX

反射操作注解

ORM:对象关系映射
类和数据库表映射

发布了10 篇原创文章 · 获赞 22 · 访问量 337

猜你喜欢

转载自blog.csdn.net/weixin_45583358/article/details/105512486