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

一、什么是注解

  注解,英文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. 使用Git上传项目到Gitee

    参考原文链接为:https://blog.csdn.net/qq944639839/article/details/79864081 1.打开GitBash 2. cd Client //进入工程目录 ...

  2. JVM的永久代会发生垃圾回收吗?

    垃圾回收不会发生在永久代中.当永久代满或者超过临界值时,就会触发完全垃圾回收(Full GC).如果仔细查看垃圾收集器中的输出信息,就会发现永久代也是被回收的.这就是正确的永久代大小对避免Full G ...

  3. R语言安装xlsx包,读入excel表格

    开学的时候,男神给了数据(.xlsx格式)让用R语言分析分析,作为编程小白,读了一天都没读近R,更别提如何分析了. 现在小伙伴们都喜欢读txt 和csv格式的,好多xlsx的表格读不进R,将xlsx格 ...

  4. MYSQL-8.0.11-WINX64(免安装版)配置

    1. 解压zip包到安装目录 首先,将mysql-8.0.11-winx64.zip 解压缩到 安装D:/mysql-8.0.11-winx64 目录下, 2.配置文件 在安装根目录下添加 my.in ...

  5. 无法对含有多个.java(或.class)文档的程序进行编译(或解释)

    通常初学者会出现这样的问题:无法对含有多个.java(或.class)文档的程序进行编译(或解释). root@yogile-VirtualBox:/alive/string# javac work/ ...

  6. Codeforces 1080C- Masha and two friends

    AC代码 #include <bits/stdc++.h> #define ll long long const int maxn=1e6+10; using namespace std; ...

  7. day07 深浅拷贝

    今日概要 深浅拷贝(重点) 文件操作 详细内容 直接赋值: 直接将对象的引用赋值给另一个对象 v1=1000 v2=v1 #v1 v2指向同一个内存地址 print(id(v1),id(v2))#相等 ...

  8. $\mathcal{OI}$生涯中的各种数论算法的证明

    嗯,写这个是因为我太弱了\(ORZ\). #\(\mathcal{\color{silver}{1 \ \ Linear \ \ Sieve \ \ Method \ \ of \ \ Prime}} ...

  9. [Java] 例外處裡 try/catch & throws

    public class CheckException { public static void main(String[] args) { File file = new File("xx ...

  10. alias重命名命令

    升级了openssh后,发现ctrl+l忽然无法清屏了. 如果需要清屏的话,就得执行clear,但我更喜欢简单粗暴的做法,于是想起alias命令 方式一: 如果只想在当前终端生效(exit该窗口终端后 ...