java的元註解共4個:@Document ,@Target ,@Retention (註解的保留位置),@Inherited(是否能夠被子類繼承)java
java註解的功能實現基本是經過定義屬性實現的;.net
註解本質是一個繼承了Annotation的特殊接口,其具體實現類是Java運行時生成的動態代理類。而咱們經過反射獲取註解時,返回的是Java運行時生成的動態代理對象$Proxy1。經過代理對象調用自定義註解(接口)的方法,會最終調用AnnotationInvocationHandler的invoke方法。該方法會從memberValues這個Map中索引出對應的值。而memberValues的來源是Java常量池。代理