# zb_java0810 **Repository Path**: xiaojin686/zb_java0810 ## Basic Information - **Project Name**: zb_java0810 - **Description**: java注解 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-08-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zb_java0810 # 课堂笔记 *java注解* ## 1 注解的概念 注解:是源码进行说明性的元数据; java源码包含java的实现代码还包含注解; 注解和注释的区别: 注解是说明性的内容给jvm虚拟机用的;注解参与编译运行; 注释是说明性的内容给用户用的;注释不参与编译运行; jdk提供了三个内建注解【基本注解】: @Override 重写; @Deprecated 过时; @SupperessWarnings 忽略警告; ## 2 自定义注解 进行自定义注解开发需要使用四个元注解: @Target 指明自定义注解作用的对象范围,可有有多给值; @Retention 指定自定义注解的生命周期 class:生命周期是编译阶段;运行之前舍弃; runtime:生命周期是java运行的整个阶段; source:生命周期是原码阶段;编译之前舍弃; @Documented 注解在使用javadoc命令时,会自动被舍弃; 该注解可以让javadoc命令生成的文档包含注解; 标识注解是否包含在javadoc命令生成的文档中,默认不包含; @Inherited 标识自定义注解是否可以被子类继承;默认不继承; 自定义注解的语法: @元注解 访问控制修饰符 @interface 注解名{ 注解的主体内容; // 可以定义注解赋值的参数 数据类型 参数名() default 默认值; } 解析: (1)@interface是注解的标识符; (2)使用元注解对自定义注解进行注解; (3)自定义注解的注解名按照类名的习惯进行命名【不要命名为已有注解的名字,否则会覆盖原有的注解】 (4)注解中定义的属性列表是在注解使用时需要进行赋值的属性列表; (5)注解中声明的属性可以有默认值,也可以没有默认值; #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)