首先我们编写的是Java的源文件,通过编译以后生成的是字节码文件也就是class文件,等到字节码文件被执行时才会被装入到内存中去,这时候就是内存中的字节码
Retention用来标记注解的生命周期,它有三种取值:
RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME,分
别对应Java源文件-->class文件-->内存中的字节码,表示添加了该注解的注解保
留的阶段,比如某个注解加了@Retention(RetentionPolicy.CLASS)注解,则表示
此注解会被保留到class字节码阶段,当调用了添加了@Retention(RetentionPolicy.CLASS)
注解的注解的类的class文件被调入到内存后,添加了@Retention(RetentionPolicy.CLASS)
注解的注解就会被去掉。
注解的默认生命周期维持到class阶段
|