@Override
修辞方法,表示打算重写超类中的方法声明。
@Deprecated
可能看不到这个注解,但是我们肯定在使用一些方法时会出现横线。表示废弃,这个注释可以修辞方法,属性,类,表示不鼓励程序员使用这样的元素,通常是因为他很危险或有更好的选择。
@SuperWarnings
这个注解主要是用来抑制警告信息的,在写程序时,可能会报很多黄线的警告,但是不影响运行,我们就可以用这个注解来抑制隐藏它。与前俩个注解不同的是我们必须给注解参数才能正确使用他。
元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation来兴,他们被用来提供对其他annotation类创作说明
这些类型和他们所支持的泪在java.lang.annotation包中可以找到(@Target,@Retention,@documented,@Inherited)
@Target :用于描述注解的适用范围
@Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(SOURCE
@Inherited:说明子类可以继承父类中的该注解
public class TestAnnotation {
@MyAnnotation(name="郭帝男",id=15)
public void test(){
}
//自定义注解
public static void main(String[] args) {
}
}
@Target({ElementType.ANNOTATION_TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
String name() default"";
int age() default 0;
int id();
String[] School() default {"清华大学"};
}
反射 Reflection
反射指的是我们可以在运行期间加载、探知、使用编译期间完全未知的类。是一个动态的机制,允许我们通过字符串来指挥程序实例化,操作属性、调用方法。使得代码提高了灵活性,但是同时也带来了更多的资源开销。
加载完类之后,在堆内存中,就产生了一个 Class 类型的对象(一个 类只有一个 Class 对象),这个对象就包含了完整的类的结构信息。 我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过 这个镜子看到类的结构,所以,我们形象的称之为:反射。



