-
文档注释(Java特有)
-
Annotation(注解)的理解
-
常见的Annotation示例
-
IDEA注释注解快捷键及模板
-
自定义 Annotation
-
JDK 中的元注解
注释的内容不参与编译,即编译以后的.class的字节码文件中不包含注释的内容。
作用:
①对程序进行解释说明,增强可读性。
②调试所写的代码。(将某代码注释来debug)
格式:
单行注释:以//
开头
多行注释:注释内容用/*
和*/
一对包住
class HelloJava{
/*
多行注释:
如下的main方法是程序的入口!
main的格式是固定的!
*/
public static void main(String[] args){
//单行注释:如下的语句表示输出到控制台。
System.out.println(“Hello Java !!!”);
}
}
注释内容可以被JDK提供的工具javadoc解析,生成以网页文件形式展现的该程序的说明文档。
/**
文档注释:
@author Yeman
@version v1.0
*/
public class HelloJava{
/*
多行注释:
如下的main方法是程序的入口!
main的格式是固定的!
*/
/**
文档注释:
如下的main方法是程序的入口!
*/
public static void main(String[] args){
//单行注释:如下的语句表示输出到控制台。
System.out.println(“Hello Java!!!”);
}
}
从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持,也就是Annotation(注解)。
Annotation 其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用 Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。
Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,这些信息被保存在 Annotation 的 “name=value” 对中。
在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。
未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解,注解是一种趋势,一定程度上可以说:框架 = 注解 + 反射 + 设计模式
。
示例一:生成文档相关的注解
@author
开发该类模块的作者,多个作者之间使用","分隔开
@version
该类模块的版本
@see
参考转向,也就是相关主题
@since
从哪个版本开始增加的
@param
对方法中某参数的说明,如果没有参数就不能写
@return
对方法返回值的说明,如果方法的返回值类型是void就不能写
@exception
对方法可能抛出的异常进行说明 ,如果方法没有用throws显式抛出的异常就不能写
其中
@param
@return
和 @exception
这三个标记都是只用于方法的
@param
的格式要求:@param 形参名 形参类型 形参说明
@return
的格式要求:@return 返回值类型 返回值说明
@exception
的格式要求:@exception 异常类型 异常说明
@param
和@exception
可以并列多个
/**
-
@Author: Yeman
-
@Date: 2021-09-10-11:13
-
@Description:
*/
public class AnnotationTest {
/**
-
程序的主入口
-
@param args
*/
public static void main(String[] args) {
System.out.println(getArea(3));
}
/**
-
求圆的面积方法
-
@param radius double 圆的半径
-
@return double 圆的面积
*/
public static double getArea(double radius){
return Math.PI * radius * radius;
}
}
示例二:在编译时进行格式检查(JDK内置的三个基本注解)
①@Override
: 重写父类中的方法,该注解只能用于方法
②@Deprecated
: 用于表示所修饰的元素(类、方法等)已过时
③@SuppressWarnings
: 抑制编译器警告
public class AnnotationTest{
public static void main(String[] args) {
@SuppressWarnings(“unused”)
int a = 10;
}
@Deprecated
public void print(){
System.out.println(“过时的方法”);
}
Java核心架构进阶知识点
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
[外链图片转存中…(img-bwSU1WxS-1714798574238)]
[外链图片转存中…(img-pgupuwMe-1714798574239)]
[外链图片转存中…(img-8yjGrsMn-1714798574240)]
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补