java 编程基础:注解的功能和作用,自定义注解
1,什么是注解:
2,Java5的常用的基本注解:
(1),重写父类方法注解@Override:
(2),标记过时@Deprecated:
- forRemoval: boolean 类型的属性指定该API在将来是否会被删除
- since: String 类型的属性指定该API从哪个版本被标记为过时
(3),取消告警@SuppressWanings:
(4),函数式接口@FunctionalInterface
自定义注解
元注解
1,@Retention
- RetentionPolicy.CLASS: 编译器将把注解记录在class文件中,当运行Java程序时JVM不可获取注解信息。这是默认值
- RetentionPolicy.RUNTIM: 编译器将把注解记录在class文件中,当运行 Java程序时JVM可获取注解信息,程序可以通过反射获取该注解信息
- RetentionPolicy.SOURCE: 注解只保留在源代码中,编译器直接丢弃这种注解
2,@Target
- ElementType.ANNOTATION_TYPE: 指定该策略的注解只能修饰注解。
- ElementType.CONSTRUCTOR: 定该策略的注解只能修饰构造器。
- ElementType.FIELD: 指定该策略的注解只能修饰成员变量。
- ElementType.LOCAL_VARIABLE: 定该策略的注解只能修饰局部变量
- ElementType.METHOD: 指定该策略的注解只能修饰方法定义。
- ElementType.PACKAGE: 指定该策略的注解只能修饰包定义。
- ElementType.PARAMETER: 指定该策略注解可修饰参数
- ElementType.TYPE: 定该策略的注解可以修饰类、接口(包括注解类型)或枚举定义
3,@Documented
4,@Inherited
public @interface MyAnnotation { }
@MyAnnotation public class MyClass { }
package com.zmd.myAnnotation; public @interface MyAnnotation {
String name();
int age() ;
}
package com.zmd.myAnnotation; @MyAnnotation(name = "hehe",age = 1)
public class MyClass {
}
package com.zmd.myAnnotation; public @interface MyAnnotation {
String name() default "zmd";
int age() default 22;
}
java 编程基础:注解的功能和作用,自定义注解的更多相关文章
- Java入门——(1)Java编程基础
Java入门--(1)Java编程基础 第二章 Java编程基础 JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 } 2.1关键字:赋予了特殊含义的单词. 2.2标识符: ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- Java开发知识之Java编程基础
Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...
- Java编程基础-面向对象(中)
本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一 ...
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- java编程基础二进制
0.java编程基础 01.二进制(原码,反码,补码) 02.位运算 03.移位运算符 二进制 原码,反码,补码 1.基本概念 二进制是逢2进位的进位制,0,1是基本算符. 现在的电子计算机技术全部使 ...
- Java编程基础——数组和二维数组
Java编程基础——数组和二维数组 摘要:本文主要对数组和二维数组进行简要介绍. 数组 定义 数组可以理解成保存一组数的容器,而变量可以理解为保存一个数的容器. 数组是一种引用类型,用于保存一组相同类 ...
- Java编程基础——运算符和进制
Java编程基础——运算符和进制 摘要:本文主要介绍运算符和进制的基本知识. 说明 分类 Java语言支持如下运算符: ◆ 算术运算符:++,--,+,-,*,/,%. ◆ 赋值运算符:=,+=,-= ...
- Java编程基础——常量变量和数据类型
Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...
- Java编程基础——标识符和关键字
Java编程基础——标识符和关键字 摘要:本文主要介绍标识符和关键字. 标识符 是什么 Java语言中,为各种变量.方法.类和包等起的名字,统统称之为Java标识符. 命名规则 ◆ 应以字母.下划线. ...
随机推荐
- mybatis源码分析二
这次分析mybatis的xml文件 1. <?xml version="1.0" encoding="UTF-8" ?> <configura ...
- Rainbond通过插件整合SkyWalking,实现APM即插即用
作者:张震 一. 简介 SkyWalking 是一个开源可观察性平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.支持分布式追踪.性能指标分析.应用和服务依赖分析等:它是一种现代 AP ...
- Codeforces 1067D - Computer Game(矩阵快速幂+斜率优化)
Codeforces 题面传送门 & 洛谷题面传送门 好题. 首先显然我们如果在某一次游戏中升级,那么在接下来的游戏中我们一定会一直打 \(b_jp_j\) 最大的游戏 \(j\),因为这样得 ...
- Codeforces 538G - Berserk Robot(乱搞)
Codeforces 题目传送门 & 洛谷题目传送门 一道很神的乱搞题 %%% 首先注意到如果直接去做,横纵坐标有关联,不好搞.这里有一个非常套路的技巧--坐标轴旋转,我们不妨将整个坐标系旋转 ...
- Assemblytics鉴定基因组间SV
Assemblytics, 发表在Bioinformaticshttp://www.ncbi.nlm.nih.gov/pubmed/27318204,鉴定基因组间SV. Githup,https:// ...
- Go 类型强制转换
Go 类型强制转换 强制类型的语法格式:var a T = (T)(b),使用括号将类型和要转换的变量或表达式的值括起来 强制转换需要满足如下任一条件:(x是非常量类型的变量,T是要转换的类型) 1. ...
- cpu的性能测试
#!/bin/bash #user%加上sys%是性能的评判标准 User_sys_a=`sar -u 1 3 |tail -1 |awk '{print $3"+"$5}'|bc ...
- C4.5决策树-为什么可以选用信息增益来选特征
要理解信息增益,首先要明白熵是什么,开始很不理解熵,其实本质来看熵是一个度量值,这个值的大小能够很好的解释一些问题. 从二分类问题来看,可以看到,信息熵越是小的,说明分类越是偏斜(明确),可以理解为信 ...
- 监督学习&非监督学习
监督学习 1 - 3 - Supervised Learning 在监督学习中,数据集中的每个例子,算法将预测得到例子的""正确答案"",像房子的价格,或者溜 ...
- mysql 中@ 和 @@的区别
@x 是 用户自定义的变量 (User variables are written as @var_name)@@x 是 global或session变量 (@@global @@session )@ ...