---恢复内容开始---

一、什么是注解

  注解,英文Annotation,它不是程序本身,是对程序的解释,在这里我会想到为什么不能使用注释呢,因为注解是关于程序对信息的处理的流程的一些说明,而且格式也与注释不同,注解是以“@注释名”再程序中存在的,而且其中还可以包含一些参数,注解可以在package、class、method上使用,可以通过反射机制编程实现对这些元数据的访问。

  我们最常见的注解就有一种是内置注解—@override。在重写toString方法时会出现,这种情况下可以更好的理解注解,在有@override时重写的方法只能是pubulic String toString(),方法的名称都是固定的,不能修改,就连大小写都不型,而在去掉@override后可以更改方法的名称。—@Deprecated,这个注释可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,或因为太危险,或因为有更好的办法。—@SuppressWarnings,这个可牛了,这个是用来抵制编译时的警告信息!它可以带参数,参数指定抑制的警告种类。

二、自定义注解

  使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

  注意:注解元素必须要有值,我们在定义注解元素的时候经常会使用空字符串、0、-1为默认值。格式是 int id() default -1;

  元注解:元注解的作用就是负责注解其他注解,Java定义了四个标准的meta-annotation类型,分别是@Target、@Retention、@Documented、@Inherited

  @Target:用于表明被注解的注解的注解范围,它的修饰范围是:package包/类、接口、枚举、Annotation类型/类型成员(方法、构造方法、成员变量、枚举值 CONSTRUCTOR-描述构造器,METHOD-描述方法,FIELD-描述作用域)、方法参数(PARAMETER)和本地变量(LOCAL_VARIABLE)

  @Retention:表示需要在什么级别保存该注解,描述的是注解的声明周期。取值有:SOURCE(在源文件中有效)CLASS(在class中保留)RUNTIME(运行时保留,可以被反射机制编码读取)

---恢复内容结束---

一、什么是注解

  注解,英文Annotation,它不是程序本身,是对程序的解释,在这里我会想到为什么不能使用注释呢,因为注解是关于程序对信息的处理的流程的一些说明,而且格式也与注释不同,注解是以“@注释名”再程序中存在的,而且其中还可以包含一些参数,注解可以在package、class、method上使用,可以通过反射机制编程实现对这些元数据的访问。

  我们最常见的注解就有一种是内置注解—@override。在重写toString方法时会出现,这种情况下可以更好的理解注解,在有@override时重写的方法只能是pubulic String toString(),方法的名称都是固定的,不能修改,就连大小写都不型,而在去掉@override后可以更改方法的名称。—@Deprecated,这个注释可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,或因为太危险,或因为有更好的办法。—@SuppressWarnings,这个可牛了,这个是用来抵制编译时的警告信息!它可以带参数,参数指定抑制的警告种类。

二、自定义注解

  使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

  注意:注解元素必须要有值,我们在定义注解元素的时候经常会使用空字符串、0、-1为默认值。格式是 int id() default -1;

  元注解:元注解的作用就是负责注解其他注解,Java定义了四个标准的meta-annotation类型,分别是@Target、@Retention、@Documented、@Inherited

  @Target:用于表明被注解的注解的注解范围,它的修饰范围是:package包/类、接口、枚举、Annotation类型/类型成员(方法、构造方法、成员变量、枚举值 CONSTRUCTOR-描述构造器,METHOD-描述方法,FIELD-描述作用域)、方法参数(PARAMETER)和本地变量(LOCAL_VARIABLE)

  @Retention:表示需要在什么级别保存该注解,描述的是注解的声明周期。取值有:SOURCE(在源文件中有效)CLASS(在class中保留)RUNTIME(运行时保留,可以被反射机制编码读取)

三、通过映射

  ORM:对象关系映射,在java中我们学习的是面向对象思想,而用java写程序用数据库存数据,大多数数据库的思想都是面向关系,大多数时候我们需要将类转换成表格,在转换的过程中其实也是一种映射。

注解_Annotation的更多相关文章

  1. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  2. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  3. Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架

    前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直 ...

  4. Android注解使用之注解编译android-apt如何切换到annotationProcessor

    前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...

  5. spring注解源码分析--how does autowired works?

    1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...

  6. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  7. ASP.NET MVC5----常见的数据注解和验证

    只要一直走,慢点又何妨. 在使用MVC模式进行开发时,数据注解是经常使用的(模型之上操作),下面是我看书整理的一些常见的用法. 什么是验证,数据注解 验证 从全局来看,发现逻辑仅是整个验证的很小的一部 ...

  8. 基于注解的bean配置

    基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...

  9. Spring注解

    AccountController .java Java代码   1.        /** 2.         * 2010-1-23 3.         */ 4.        packag ...

随机推荐

  1. 第一篇,java学习之旅

    在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import j ...

  2. Python2和Python3安装注意事项

    1. 到官网 https://www.python.org/downloads/windows/ 下载 Windows x86-64 executable installer版本: 2. python ...

  3. Win10+Ubuntu双系统删除Ubuntu方法

    前情提要 Win10下试了许多种方法,什么MbrFix.EasyBCD.亦或是Boot Option.都不行.前两者不行,操作之后重启无法直接进入Windows,后者也不行,找不到所谓的Delete ...

  4. 认识:人工智能AI 机器学习 ML 深度学习DL

    人工智能 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 人工智能是对人的意识. ...

  5. A Statistical Model for Scientific Readability-paper

    Authors: Luo SiCarnegie Mellon University, Pittsburgh, PA Jamie CallanCarnegie Mellon University, Pi ...

  6. zookeeper集群和安装dubbo的管控台

    准备三台服务器CentOs6: 192.168.37.132 192.168.37.128 192.168.37.131 1 将zookeeper的安装包分别解压到/usr/local/目录下 进入c ...

  7. 点击select下拉框获取option的属性值

    select下拉框作为前端开发者应该是经常使用的,最近在项目中遇到这样的情况,点击下拉框选项,需要获取所点击的option的属性值,当时想很简单啊,给option加一个点击事件不就行了,然后就加了一下 ...

  8. [Android]-图片JNI(C++\Java)高斯模糊的实现与比較

    版权声明:本文作者:Qiujuer https://github.com/qiujuer; 转载请注明出处,盗版必究! !! https://blog.csdn.net/qiujuer/article ...

  9. Mongo数据库基本操作

    从这两个类的继承来看,connection是继承了MongoClient的,建议使用MongoClient而不是使用Connection.(也就是说,MongoClient可以使用方法Connecti ...

  10. 随机数的组合问题(JavaScript描述)

    随机数的组合问题在面试时是经常考的,比如之前我就被问到:“有一个可以生成1-5的随机数函数,怎样把它扩大到1-7?” 在解决这个问题之前,先来看看另外一个比较简单的问题:“有一个可以生成1-7的函数, ...