java的元注解共4个:@Document ,@Target ,@Retention (注解的保留位置),@Inherited(是否能够被子类继承)java
java注解的功能实现基本是经过定义属性实现的;.net
注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类。而咱们经过反射获取注解时,返回的是Java运行时生成的动态代理对象$Proxy1。经过代理对象调用自定义注解(接口)的方法,会最终调用AnnotationInvocationHandler的invoke方法。该方法会从memberValues这个Map中索引出对应的值。而memberValues的来源是Java常量池。代理