* 概念:说明程序的。给计算机看的
    * 注释:用文字描述程序的。给程序员看的

* 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
    * 概念描述:
        * JDK1.5之后的新特性
        * 说明程序的
        * 使用注解:@注解名称
        
    
    * 作用分类:
        ①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
        ②代码分析:通过代码里标识的注解对代码进行分析【使用反射】
        ③编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】

* JDK中预定义的一些注解
        * @Override    :检测被该注解标注的方法是否是继承自父类(接口)的
        * @Deprecated:该注解标注的内容,表示已过时
        * @SuppressWarnings:压制警告
            * 一般传递参数all  @SuppressWarnings("all")

* 自定义注解
        * 格式:
            元注解
            public @interface 注解名称{
                属性列表;
            }

* 本质:注解本质上就是一个接口,该接口默认继承Annotation接口
            * public interface MyAnno extends java.lang.annotation.Annotation {}

* 属性:接口中的抽象方法
            * 要求:
                1. 属性的返回值类型有下列取值
                    * 基本数据类型
                    * String
                    * 枚举
                    * 注解
                    * 以上类型的数组

2. 定义了属性,在使用时需要给属性赋值
                    1. 如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
                    2. 如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。
                    3. 数组赋值时,值使用{}包裹。如果数组中只有一个值,则{}可以省略
        
        * 元注解:用于描述注解的注解
            * @Target:描述注解能够作用的位置
                * ElementType取值:
                    * TYPE:可以作用于类上
                    * METHOD:可以作用于方法上
                    * FIELD:可以作用于成员变量上
            * @Retention:描述注解被保留的阶段
                * @Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到class字节码文件中,并被JVM读取到
            * @Documented:描述注解是否被抽取到api文档中
            * @Inherited:描述注解是否被子类继承

* 在程序使用(解析)注解:获取注解中定义的属性值---》参考 JavaEE注解学习:(二)
        1. 获取注解定义的位置的对象  (Class,Method,Field)
        2. 获取指定的注解
            * getAnnotation(Class)
            //其实就是在内存中生成了一个该注解接口的子类实现对象

                    public class ProImpl implements ProA{
                        public String className(){
                            return "cn.itcast.annotation.Demo1";
                        }
                        public String methodName(){
                            return "show";
                        }
                    }

        3. 调用注解中的抽象方法获取配置的属性值

* 案例:简单的测试框架
    * 小结:
        1. 以后大多数时候,我们会使用注解,而不是自定义注解
        2. 注解给谁用?
            1. 编译器
            2. 给解析程序用
        3. 注解不是程序的一部分,可以理解为注解就是一个标签

JavaEE 注解笔记:(一)相关推荐

  1. Linux+javaEE学习笔记之Linux网络环境配置

    Linux+javaEE学习笔记之Linux网络环境配置 网络知识简单介绍: Ip地址是:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物 ...

  2. JavaEE学习笔记-SpringBoot快速上手、热部署、乱码问题、部分注解解释

    SpringBoot快速上手 一.快速创建SpringBoot应用 1.1利用IDEA提供的Spring Initializr创建Spring Boot应用 1.2Spring Boot生成的项目结构 ...

  3. javaee入门笔记2

    开发基于Mysql.Servlet.JSP的作业管理系统: 实现功能: 老师:添加作业,添加学生.查询学生作业: 学生:根据老师添加的作业,进行作业提交: 简要思路实现: 首先先用Mysql对数据库进 ...

  4. spring mvc注解笔记

    1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使用了该注解的类的方法, 并检测该方法是 ...

  5. 参考 JavaEE注解学习:(二)

    在程序使用(解析)注解:获取注解中定义的属性值,并利用反射来调用方法 步骤1:获取注解定义的位置的对象  (Class,Method,Field) 步骤2:获取指定的注解 步骤3:调用注解中的抽象方法 ...

  6. Temporal注解笔记

    摘自:https://www.cnblogs.com/meng-ma-blogs/p/8474175.html 数据库的字段类型有date.time.datetime 而Temporal注解的作用就是 ...

  7. 超详细的java基础知识学习(java SE、javaEE)笔记 核心重点!

    标识符 Java 的标识符是由字母.数字.下划线_.以及美元符$组成,但是首字母不可以是数字.Java 标识符大小写敏感,长度无限制,不能是 Java 中的关键字.命名规则:要见名知意! u  变量要 ...

  8. JavaEE学习笔记整理

    目录 1:明白什么是JavaEE 2:JavaEE的主要技术 (1)JDBC (2)JavaBeans (3)JSP (4)Servlet 3:JavaEE框架 (1)MVC框架 (2)SSM Jav ...

  9. JavaEE 学习笔记 —— Spring Framework

    spring framework runtime 核心容器 容器:servlet 容器.集合 线程池.常量池.数据库连接池的作用类似于容器 但是他们属于设计模式中的享元模式,即从池子中取东西,如果取不 ...

最新文章

  1. Error: “incorrect inclusion of a cudart header file”
  2. Delphi 调用C#编写的WebService 参数为Null解决方法
  3. vue axios 配置上服务器后报错'Access-Control-Allow-Origin' header](亲测)
  4. 嵌入式开发中,用C++真香!
  5. 机器学习之Fisher线性分类器实现样本分类
  6. 代码实现tan graph model for classification_几行代码搞定ML模型,低代码机器学习Python库正式开源...
  7. python专业方向 | 文本相似度计算
  8. 帮你免于失业的十大技术
  9. 【Latex】PPT画图,导出emf格式,word插入emf文件并导出pdf,pdf裁剪并导出eps文件,latex插入eps文件
  10. Springcloudalibaba整合es!实现相关性排序,集成完代码真香
  11. 详解ZStack Cloud v4.0:自研VPC网络模型实践指南
  12. 学习笔记 | c++中四种类型cast(强制)转换
  13. CarSim与多版本MATLAB联合仿真问题
  14. Druid监控页面配置用户密码、去除Ad
  15. Smarty - 官方网站
  16. python全栈(一)网络通信与服务器之多任务-进程
  17. 这四款优傲机器人中哪一个最适合你?
  18. 低版本 android 软件下载,触漫旧版本下载
  19. C:\Windows\System32\drivers\etc 没有hosts文件解决办法
  20. php如何实现余额充值,PHP集成支付宝快速实现充值功能

热门文章

  1. 为推广5G 4G网络降速?三大运营商回应:不存在的!
  2. 中国联通辟谣“不支持华为”:恶意诽谤 将通过法律手段维护权益
  3. 又烧一辆!蔚来ES8车库夜里起火 两个半小时才熄灭:现场惨烈
  4. Python产生随机数(转)
  5. 晨哥真有料丨等女神分了我上位!
  6. html读取媒体长度,用媒体查询media根据屏幕分辨率大小确定网页宽度
  7. puppeteer 自动化测试 一
  8. Oracle 索引相关
  9. oracle如何查询排行第二,Oracle优化查询改写(第二章-给查询结果排序)
  10. PHP实现的服务器端,用PHPStorm实现在本地实时编辑服务器端的代码