Java基础:注解:JDK提供5个基础注解 5个元注解 不够用,我们还要自定义注解

注解 可以扩充我原来代码的功能!(利用反射技术)
注解的分类:
1.JDK自带注解 5个 : @Override @Deprecated @SuppressWarnings(“deprecation”) @SafeVarargs @FunctionallInterface
2.元注解(描述注解的注解) 5个 : @Target @Retention @Inherited @Documented @Repeatable
3.自定义注解

元注解:

@Target () ----- 用于描述 它修饰的注解的 使用范围(属性上可用?方法上可用?类上可用?)
当我自定义出一个我需要的注解的时候,脑袋上要用这个注解 进行 约束。
Java基础:注解:JDK提供5个基础注解 5个元注解 不够用,我们还要自定义注解
@Target( )中的值 可以有这么几种可选(在枚举类ElementType.class中选)。其中最常用的是这3种。
如果@CacheAOP上不用@Target()修饰,就表明@CacheAOP这个注解哪都能用。
Java基础:注解:JDK提供5个基础注解 5个元注解 不够用,我们还要自定义注解

@Runtention() —它用来规定它修饰的这个注解被保留的时间长短。
它括号里的值要从枚举类RetentionPolicy.class中挑选
(通常用source)

Java的编译器:
有Sun公司提供的JDK,也有Oracle公司提供的JDK,还有其他公司的产品,大多数用Sun公司的。
java编译器就是(java.exe),它将HelloWorld.java文件编译成HellowWorld.class
Java基础:注解:JDK提供5个基础注解 5个元注解 不够用,我们还要自定义注解
SOURCE:仅在我编写的源代码中有效,当我的代码被编译成.java文件时,这个@CacheAOP注解就被丢弃。
CLASS : 当我的.java文件编译成.class文件后,@CacheAOP注解开始生效了。
RUNTIME : 当我的程序都已经开始运行起来了,@CacheAOP注解开始生效了。
Java基础:注解:JDK提供5个基础注解 5个元注解 不够用,我们还要自定义注解