1.1什么是注解以及注解的作用?
注释给人看,注解给人和机器看
不同注释:可以被其他程序[编译器/Spring 容器]使用处理,用作不同的用途
作用: 很多框架提供注解给开发者增强功能 简洁的方式,给程序提供强大的功能和灵活性,提高开发效率
定义方式:使用@interface
使用形式:@注解名(属性名=属性值)
1.2注解的种类:java内置注解、元注解、自定义注解
1.2.1java内置注解:
@Override:子类重写父类方法
@Deprecated:可以使用,但不推荐继续使用,即将被放弃维护且删除接口
@SuppressWarnings:抑制警告输出打印提示
元注解:
修饰注解的注解
@Target:
1、使用目标对象,
2、可用枚举属性值为TYPE、FIELD、METHOD、PARAMETER、CONSTRUCTOR 等
@Retention:
1、需保留到的最后期限
2、可用枚举属性值为SOURCE、CLASS、RUNTIME
@Documentation:是否需要输出到Javadoc
@Inherited:父类的注解[带有被@Inherited 注解]可以被子类继承
自定义注解:
1.定义:使用@interface
2.定义属性:类名+名字()
3.赋默认值:default + 默认值
4.修饰:使用需要的元注解
2.什么是反射以及它的作用?
反射是能反应对象所属类的完整结构信息[含private ]
程序运行时,获取类的完整结构信息,如方法、属性、注解等,还能执行方法和修改属性
2.1反射对象的一般创建方式:
Class c = Class.forName("java.lang.String")
2.2反射类与反射对象:
加载完类的之后,在堆内存的方法区中就会产生一个Class类型的对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射
2.3通过反射获取注解,进而获取类的属性