Skip to content

Commit

Permalink
[docs update] 添加注解相关内容
Browse files Browse the repository at this point in the history
  • Loading branch information
Snailclimb committed Jan 5, 2022
1 parent 7025349 commit 3615e0b
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions docs/java/basis/java基础知识总结.md
Original file line number Diff line number Diff line change
Expand Up @@ -1199,6 +1199,31 @@ public class DebugInvocationHandler implements InvocationHandler {

这些都是因为你可以基于反射分析类,然后获取到类/属性/方法/方法的参数上的注解。你获取到注解之后,就可以做进一步的处理。

## 注解

`Annontation` (注解) 是Java5 开始引入的新特性,可以看作是一种特殊的注释,主要用于修饰类、方法或者变量。

注解本质是一个继承了`Annotation` 的特殊接口:

```java
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {

}

public interface Override extends Annotation{

}
```

注解只有被解析之后才会生效,常见的解析方法有两种:

- **编译期直接扫描** :编译器在编译 Java 代码的时候扫描对应的注解并处理,比如某个方法使用`@Override` 注解,编译器在编译的时候就会检测当前的方法是否重写了父类对应的方法。
- **运行期通过反射处理** :像框架中自带的注解(比如 Spring 框架的 `@Value``@Component`)都是通过反射来进行处理的。

JDK 提供了很多内置的注解(比如 `@Override``@Deprecated`),同时,我们还可以自定义注解。

## 异常

### Java 异常类层次结构图
Expand Down

0 comments on commit 3615e0b

Please sign in to comment.