【Java】注解入门

Java注解从入门到精通 Java注解从入门到精通 - 摘要 本文全面讲解Java注解技术,涵盖从基础概念到高级应用。主要内容包括: 基础部分: 注解定义:Java代码中的元数据标签,用于提供附加信息 与注释的区别:注解可影响程序行为而不仅用于说明 三大作用:编译检查、代码分析、文档生成 核心注解: 内置注解:@Override、@Deprecated、@SuppressWarnings等详解 元注解:@Retention、@Target等控制注解行为的元数据 高级应用: 自定义注解语法与实现 注解处理器开发与反射读取 实际应用场景 阅读详情

本文作为注解的入门文章,主要向读者介绍注解的基本概念与用法,目的还是能够看懂JDK源代码的注解相关代码。

主要内容有:初步了解一下注解的定义;JDK提供的注解;自己写一个注解;用于自己写注解时用的注解(元注解);JDK在运行时如何解析注解的;


目录

什么是注解

预置注解

自定义注解

定义注解

注解属性

元注解

@Retention

@Target

@Documented

@Inherited

@Repeatable

注解的解析


什么是注解

对注解的理解:

  1. 就像是对人贴上了一个标签。吴小明这个人是个理想主义者、单身狗、技术宅。
  2. 对类或方法贴上一个标签。某方法是Override、Deprecated、SuppressWarnings。

一般概念:说明程序,是给计算机看的。和注释的区别是,注释是用文字描述程序的,给程序员看的。

注解的定义:

  1. 注解(Annotation),也叫元数据。一种代码级别的说明。
  2. 用在类上,方法上,成员变量,构造器,...上对成分进行编译约束,标记等操作的。

简单认识:

  1. 它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。
  2. 像一种修饰符一样,它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
  3. 注解是给编译器或JVM看的,编译器或JVM可以根据注解来完成对应的功能。

注解的功能:

  1. 使用注解:@注解名称
  2. 为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。
  3. 注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在java.lang.annotation包中。
  4. 简单来说:注解其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。

注解的本质:

  1. 元注解的格式:public @interface 注解名 { }
  2. 本质是一个接口,该接口默认继承Annotation接口:
    public interface 注解名 extends java.lang.annotation.Annotion {}

     

Java预定义注解:

  1. @Override:检测被该注解标注的方法是否是继承自父类(接口)的;
  2. @Deprecated:该注解标注的内容,表示已过时;
  3. @SuppressWarnings():压制警告,一般传递参数all;

作用分类:

  1. 编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
  2. 代码分析:通过代码里标识的注解对代码进行分析【使用反射】
  3. 编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】

预置注解

在 java.lang 包下存在着5个基本的 Annotation

@Deprecated

发出提醒警告,告诉开发者正在调用一个过时的元素比如过时的方法、过时的类、过时的成员变量。

使用示例:

public class Hero {
	@Deprecated
	public void say(){
		System.out.println("Noting has to say!");
	}
	
	public void speak(){
		System.out.println("I have a dream!");
	}
}

@Override

这个大家应该很熟悉了,提示子类要复写父类中被 @Override 修饰的方法。

@SuppressWarnings

阻止警告的意思。之前说过调用被 @Deprecated 注解的方法后,编译器会警告提醒,而有时候开发者会忽略这种警告,他们可以在调用的地方通过 @SuppressWarnings 达到目的。

@SuppressWarnings("deprecation")
public void test1(){
	Hero hero = new Hero();
	hero.say();
	hero.speak();
}

@SafeVarargs

参数安全类型注解。它的目的是提醒开发者不要用参数做一些不安全的操作,它的存在会阻止编译器产生 unchecked 这样的警告。它是在 Java 1.7 的版本中加入的。

@SafeVarargs // Not actually safe!
static void m(List<String>... stringLists) {
	Object[] array = stringLists;
	List<Integer> tmpList = Arrays.asList(42);
	array[0] = tmpList; // Semantically invalid, but compiles without warnings
	String s = stringLists[0].get(0); // Oh no, ClassCastException at runtime!
}

上面的代码中,编译阶段不会报错,但是运行时会抛出 ClassCastException 这个异常,所以它虽然告诉开发者要妥善处理,但是开发者自己还是搞砸了。Java 官方文档说,未来的版本会授权编译器对这种不安全的操作产生错误警告。

自定义注解

定义注解

语法格式:

修饰符 @interface 注解名{

     // 注解属性

}

特性:

  1. 所有的自定义 Annotation 会自动继承 java.lang.Annotation 这一接口,并且不能再去继承别的类或是接口.
  2. 参数成员只能用 public 或默认(default)这两个访问权修饰
  3. 参数成员只能用基本类型 byte, short, char, int, long, float, double, boolean 八种基本数据类型和 String、Enum、Class、annotations 等数据类型,以及这一些类型的数组
  4. 要获取类方法和字段的注解信息,必须通过 Java 的反射技术来获取 Annotation 对象,因为你除此之外没有别的获取注解对象的方法
  5. 注解也可以没有定义成员, 不过这样注解就没啥用了。此外,自定义注解需要使用到元注解;
第一个注解实例
@FirstAnnotation //注解可以用在类上
public class Main {
    
    @FirstAnnotation //可以用在方法上
    public static void main(@FirstAnnotation String[] args) { //可以用在参数上
        @FirstAnnotation //可以用在变量上
        int a = 10;
    }
}

@interface FirstAnnotation {
    
}

注解属性

格式:

修饰符 @interface 注解名{

     // 注解属性

}

注解属性

  1. 格式1:数据类型 属性名();
  2. 格式2:数据类型 属性名() default 默认值;

特性:

  1. 注解可以有属性,属性名必须带()
  2. 在用注解的时候,属性必须赋值,除非这个属性有默认值!!
第一个注解属性实例
@MyBook(name="《Java基础》",authors = {"aa","bb","cc"} , price = 99.9 )
public class AnnotationDemo01 {
    @MyBook(name="《MySQL数据库入门到删库跑路》",authors = {"小白","小黑"} ,
            price = 19.9 , address = "北京")
    public static void main(String[] args) {

    }
}

// 自定义一个注解
@interface MyBook{
    String name();
    String[] authors(); // 数组
    double price();
    String address() default "广州";
}

特殊属性:

  1. value属性,如果只有一个value属性的情况下,使用value属性的时候可以省略value名称不写!
  2. 但是如果有多个属性,且多个属性没有默认值,那么value是不能省略的。
特殊属性
public class Main {
    @Annotation01("01") //等价于@Annotation01(value="01")
    public void test01() {
    }

    //但是如果有多个属性,且多个属性没有默认值,那么value是不能省略的。
    @Annotation02(value = "02", str = "02")
    public void test02() {
    }
    
    //但是如果有多个属性,且多个属性没有默认值,那么value是不能省略的。
    @Annotation03("03")
    public void test03() {
    }
}

@interface Annotation01 {
    String value(); //value属性,如果只有一个value属性的情况下,使用value属性的时候可以省略value名称不写!
}
@interface Annotation02 {
    String value();
    String str();
}
@interface Annotation03 {
    String value();
    String str() default "003";
}

元注解

理解元注解:

  1. 元注解也是一张标签,但是它是一张特殊的标签,它的作用和目的就是给其他普通的标签进行解释说明的。
  2. 即,元注解是用在自定义注解上的注解

元标签有 @Retention、@Documented、@Target、@Inherited、@Repeatable 5 种。

@Retention

功能:

  1. 申明注解的生命周期
  2. 申明注解的作用范围:编译时,运行时。

它的取值如下:

  1. RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。
  2. RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。
  3. RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。

使用示例:

@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation {
	方法体
}

@Target

功能:

  1. 默认的注解可以在类,方法,构造器,成员变量,... 使用。
  2. 约束自定义注解只能在哪些地方使用

@Target 有下面的取值:

  1. ElementType.ANNOTATION_TYPE 可以给一个注解进行注解
  2. ElementType.CONSTRUCTOR 可以给构造方法进行注解
  3. ElementType.FIELD 可以给属性进行注解
  4. ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
  5. ElementType.METHOD 可以给方法进行注解
  6. ElementType.PACKAGE 可以给一个包进行注解
  7. ElementType.PARAMETER 可以给一个方法内的参数进行注解
  8. ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举

实例:

@Target({ElementType.METHOD , ElementType.FIELD}) // 申明只能注解方法和成员变量!
// @Target(ElementType.METHOD ) // 申明只能注解方法
@interface MyTest{
}

@Documented

顾名思义,这个元注解肯定是和文档有关。它的作用是能够将注解中的元素包含到 Javadoc 中去。

@Inherited

Inherited 是继承的意思,但是它并不是说注解本身可以继承,而是说如果一个超类被 @Inherited 注解过的注解进行注解的话,那么如果它的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解。


@Inherited
@Retention(RetentionPolicy.RUNTIME)
@interface Test {}

@Test
public class A {}

public class B extends A {}

注解 Test 被 @Inherited 修饰,之后类 A 被 Test 注解,类 B 继承 A,类 B 也拥有 Test 这个注解。

可以这样理解:

  1. 老子非常有钱,所以人们给他贴了一张标签叫做富豪。
  2. 老子的儿子长大后,只要没有和老子断绝父子关系,虽然别人没有给他贴标签,但是他自然也是富豪。
  3. 老子的孙子长大了,自然也是富豪。
  4. 这就是人们口中戏称的富一代,富二代,富三代。虽然叫法不同,好像好多个标签,但其实事情的本质也就是他们有一张共同的标签,也就是老子身上的那张富豪的标签。

@Repeatable

Repeatable 自然是可重复的意思。@Repeatable 是 Java 1.8 才加进来的,所以算是一个新的特性。

什么样的注解会多次应用呢?通常是注解的值可以同时取多个。

举个例子,一个人他既是程序员又是产品经理,同时他还是个画家。


@interface Persons {
	Person[]  value();
}

@Repeatable(Persons.class)
@interface Person{
	String role default "";
}

@Person(role="artist")
@Person(role="coder")
@Person(role="PM")
public class SuperMan{
	
}

注意上面的代码,@Repeatable 注解了 Person。而 @Repeatable 后面括号中的类相当于一个容器注解。

什么是容器注解呢?就是用来存放其它注解的地方。它本身也是一个注解。

注解的解析

功能:

  1. 对于一个类,我们需要知道这个类到底用了哪些注解。
  2. 并且获取到注解中的值。

AnnotatedElement接口定义了与注解解析相关的方法

所有的类成分Class, Method , Field , Constructor:都实现了AnnotatedElement接口,则他们都拥有解析注解的能力:

  1. Annotation[] getDeclaredAnnotations()  获得当前对象上使用的所有注解,返回注解数组。
  2. T getDeclaredAnnotation(Class<T> annotationClass)  根据注解类型获得对应注解对象
  3. boolean isAnnotationPresent(Class<Annotation> annotationClass)  判断当前对象是否使用了指定的注解,如果使用了则返回true,否则false

 

解析注解数据的原理:

比如注解作用成员方法,则要获得该成员方法对应的Method对象,再来拿上面的注解

比如注解作用在类上,则要该类的Class对象,再来拿上面的注解

比如注解作用在成员变量上,则要获得该成员变量对应的Field对象,再来拿上面的注解

总结

什么是注解:给代码打个标签,说明它是一类什么样的代码;

什么是预置注解,它们都是干什么的:JDK提供的,可以直接使用的注解,对代码进行标记,例如@Override标明这个函数是重写父类中的同名函数的。

自定义注解:自己写一个注解。

元注解:用在自己写注解时用到的注解。

注解的解析:自己编写的注解时怎么解析的,看懂JDK注解的解析。

 

引用、参考资料:

  1. Java核心技术(卷一) 
  2. 黑马程序员
人工智能训练师技能等级认定四级技能考核试卷-样题1 本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总分100分,考试时间150分钟。试卷涵盖数据处理、模型训练准备及系统维护等核心技能:1)垃圾分类数据集规范与处理(30分),要求评估数据格式并编写Python处理代码;2)学生成绩数据集分析(20分),涉及数据预处理、可视化及相关性分析;3)数据标注审核(10分),重点审核标注准确性;4)智能数据服务系统维护与优化(40分),包括安全帽数据集的项目创建、数据处理及平台协作。考核强调Python编程、数据处理平台操作及AI工作流程的实践能力。 阅读详情

相关推荐

01 Aras Innovator二次开发实战:从IOM到AML的完整交互指南

本文详细介绍了Aras Innovator二次开发实战,从IOM到AML的完整交互指南。通过JavaScript和C#代码示例,展示了如何在客户端和服务端使用IOM进行开发,并深入解析AML语言的基础语法和调试技巧。文章还提供了文档管理和BOM管理等典型场景的实战案例,帮助开发者快速掌握Aras Innovator二次开发的核心技术。

wind6的博客 650

Java注解:从入门到精通

注解详细解读

qq_73698057的博客 1204

nature子刊:MCNN基于电池故障诊断的模型约束的深度学习方法

本研究提出了一种基于模型约束神经网络(MCNN)的锂离子电池在线故障诊断方法,整合物理模型与深度学习,有效解决了随机工况下传统方法诊断精度低、依赖故障样本等问题。通过统计修正电池包模型和双向LSTM网络,实现了电池状态的高精度预测(平均RMSE 3.9%),并设计模型耦合自动编码器提取可解释特征。在包含18.2百万条真实车辆数据的验证中,该方法故障检测TPR在FPR=0.1时达85%,较基准方法提升超46.5%,且能提前30分钟预警内部短路等故障。研究还展示了算法在跨电池包结构迁移中的优越性,为工业应用提供

hasakie的博客 1757

Java注解Annotation从入门到精通

注解(Annotation)是Java代码里的特殊标记,比如:@Override、@Test等,其作用是:通过反射机制让其他程序根据注解信息来决定怎么执行该程序。比如要解析类上面的注解,则应该先获取该类的Class对象,再通过Class对象解析其上面的注解。比如要解析成员方法上的注解,则应该获取到该成员方法的Method对象,再通过Method对象解析其上面的注解。模拟JUnit框架,运行加注注解的方法,实现步骤:定义若干个方法,只要加注了MyTestAnno注解,才会触发该方法执行。

weixin_50083448的博客 1174

在Qt中集成VTK和PCL:实现数据可视化的完整指南

在现代软件开发中,数据可视化至关重要。将VTK(Visualization Toolkit)和PCL(Point Cloud Library)集成到Qt环境里,能为开发者提供强大的可视化解决方案。本文将深入讲解如何在Qt中读取PCL文件,展示VTK模型和PCL数据,适合想要在Qt项目中实现数据可视化的开发者。

轩宇的博客 916

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

m0_51339444的博客 1804

深入理解Java:注解(Annotation)自定义注解入门

转载:深入理解Java:注解(Annotation)自定义注解入门 - peida - 博客园

sky198989的博客 149

大疆前端开发面试题及参考答案(4万字长文)

在前端项目中,难点和性能优化的挑战无处不在。比如在处理复杂交互界面时,实现流畅的动画效果和实时反馈就是一大难点。当界面中有大量元素需要同时进行交互和动态更新,像电商平台的商品筛选和排序功能,不仅要保证操作的即时响应,还要确保界面在各种设备和网络环境下的稳定性,这就需要对事件处理、DOM 操作和数据更新机制有深入理解。在性能优化方面,首屏加载速度是常见的难点。当页面包含大量图片、脚本和样式文件时,如何合理地进行资源压缩、合并与缓存,以减少加载时间,是需要精心考虑的。

大模型大数据攻城狮的专栏 1155

Java注解入门

注解入门 什么是注解(Annotation)?注解是放在源码的类、方法、字段、参数前的一种特殊的“注释”。注释是给人看的。注解可以被程序识别。 注解的作用: 注解本身对java代码没有任何影响。java的注解可以分为三类: 第一类是由编译器使用的注解,例如: @Override:让编译器检查该方法是否实现了覆写; @Suppresswarnings:告诉编译器忽略此处代码产生的告警。 这类注解不会被编译进入.class文件。 第二类是由工具处理.class文件使用的注解,比如工具会在加载class的时候

u010327678的博客 267

ABAP 里解构引用操作符 ->* 的使用方法详解

解除引用操作符->*可用于将“类型为REF TO …的引用变量”的值(即该引用所指向内存)取出,从而访问其实际值或内部组件。具体地,若dref是一个“引用变量”,则表达式dref->*代表对该引用进行“解除引用”,使得程序按静态类型将其视为实际类型的值对象。例如,若lr类型声明为,则lr->*表示“将 lr 引用的INT4对象看作INT4类型并访问其值”。注:若 “数据引用变量” 的静态类型是通用类型DATA,则只能在这种上下文中使用->*。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 479

运维颠覆!一文解锁AI赋能运维实战秘籍,效率飙升!

将AI应用于运维工作是一场极具价值的变革,从故障预测与诊断到自动化任务执行,再到资源管理优化,AI都展现出巨大潜力。尽管在实践过程中会面临数据质量、模型复杂性等挑战,但通过合理的技术选型和解决方案,我们能够充分挖掘AI的优势,实现运维工作的高效、智能转型。持续探索和创新AI在运维领域的应用,将为企业的数字化发展提供坚实保障。在科技飞速发展的当下,运维领域正经历着深刻变革,AI的融入成为提升运维效率与质量的关键。本文将深入实战,带你领略AI如何在运维各环节大显身手,让你的运维工作开启智能高效新模式。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 401

java参数注解pam_Java注解入门_一点课堂(多岸学院)

深入理解Java注解 - 注解入门要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。Java提供的元注解Java5.0定义了4个标准的元注解:@Target @Retention @Documented @Inherited1.@Target注解作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方...

weixin_29056865的博客 87

YOLO11-Seg优化:卷积变体系列篇 | 动态蛇形卷积(Dynamic Snake Convolution) | ICCV2023

动态蛇形卷积(Dynamic Snake Convolution),增强微小特征提取能力,引入到YOLO11-Seg,与C3k2结合实现二次创新

会AI的学姐 370

java注解入门

1.元注解 /** * @author bobo (bo.wang@laowantong.cc) * @date 2018年01月28日 * @desc 演示自定义注解 */ /** * 元注解: 指的是注解的注解, 包括 @Documented, @Target, @Inherited, @Retention 四种 * * 1. @Documented 表明了这个注解应该被

九月清晨的博客 365

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java中注解入门

1.注解,也叫做注释,英文单词是Annotation。是一种引用数据类型,编译之后也会生成class文件。 定义的语法格式: [修饰符列表] @interface 注解类型名{ } 注解的使用: ①使用的语法格式: @注解类型名(属性名=属性值, 属性名=属性值, 属性名=属性值) ②注解可以出现在接口上、类上、属性上、方法上、变量上等。 注解还可以出现在注解类...

xxyneymar的博客 212

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java常用注解-快速入门

在Java开发中,我们经常使用像@Override这样的系统自带注解。但有时候我们需要根据自己的业务需求来标记某些方法或类,这时就需要自定义注解。标记某个方法需要记录日志表示某个方法需要权限验证指定某个类是核心业务类@Target(ElementType.METHOD) // 指定注解的作用目标@Retention(RetentionPolicy.RUNTIME) // 指定注解保留到运行时// 可以设置默认值// ...// ...要真正发挥自定义注解的作用,通常需要配合。

likehoc的博客 2249

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java注解从入门到入土

目录java注解理解java注解基本语法声明注解与元注解注解元素以及其数据类型编译器对默认值的限制注解不支持继承快捷方式java内置注解与其他元注解注解与反射机制注解处理器java8中注解增强元注解Repeatable新增的两种ElementTypejava8中注解增强元注解Repeatable新增的两种ElementType java注解 理解java注解 ​ 注解是java提供的一种对元重新中...

冢狐的私人空间 597

自定义注解 java_用大白话聊聊JavaSE -- 自定义注解入门

注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原因:1. 可以更深层次地学习Java,理解Java的思想.2. 有了注解的基础,能够方便阅读各种框架的源码,比如hibernate,SpringMVC等等。里面就用到了大量的注解。即便无法阅读源码,以后使用这些框架,会有一种心理上的安全感。3. 方便今后跟别人吹牛。(当然,这也很重要。)好了,话不多说,我们开始吧。...

weixin_35940511的博客 223

java 注解入门 简书_Java入门篇——注解Annotation

在Java1.5以后,引入了注解,也称作元数据。作为新的特性,同时也是基础知识之一,我们应该学会使用这种用法,虽然反射会带来代码效率问题,但相比于它的优点,这种损失我们还是可以承受的。元数据被定义为:描述数据的数据,对数据及信息资源的描述性信息。我们可以认为注解的目的就是对数据添加的附加信息。在java源代码中添加注解,有助于减轻编写“样板”代码的负担(findViewById),更加干净易读的代...

weixin_34237362的博客 175

Java注解的入门学习

Java注解的入门学习

qinxun2008081的博客 794

Java注解入门到精通,这一篇就够了

一、为什么要学注解? ​ 在日常开发中,基本都是在使用别人定义或是各种框架的注解,比如Spring框架中常用的一些注解:@Controller、@Service、@RequestMapping,以此来实现某些功能,但是却不知道如何实现的,所以如果想学习这些框架的实现原理,那么注解就是我们必知必会的一个点。其次,可以利用注解来自定义一些实现,比如在某个方法上加一个自定义注解,就可以实现方...

KimZing的博客 3万+

java 注解入门 简书_Java注解Annotation快速入门

注解,Annotation,是Java语言5.0版本引入的特性。自诞生到现在,Java语言的项目中,注解出现的频率比较高,已经成为了Java语言非常重要的特性之一。这篇就是将注解的快速上手。本文假定读者在java代码中见过注解,但是,对注解一知半解,一无所知。1、什么是注解Annotations, a form of metadata, provide data about a program t...

weixin_33601398的博客 171

java 注解入门 简书_Java注解入门

Java注解(Annotation)0.0 Hello World先上代码,再加以说明。这样不至于让初学者懵。例1public class Dog extends Animal(){@Overridepublic void call(){System.out.println("汪汪...");}}0.1 Java自带注解 - @Override方法call()上声明的@Override是Java自...

weixin_35414887的博客 127

java 注解入门 简书_注解使用入门(一)

注解使用入门(一)本篇博客要讲解主要分为以下几个问题注解的相关知识点基于运行时的注解的例子解析说明至于关于编译时的注解,待下篇博客的时候会结合例子讲解一下,目前我也正在学习当中注解的相关知识点提到注解,大多数人应该都不默认,在我们程序中见到的@Override,@Deprected,@SupressWarnings等等,这些都是注解,只不过是系统自己封装好的,而我们平时比较少去深入理解是怎样实现的...

weixin_33502070的博客 174
上一篇: 【C指针】初识指针
下一篇: 【Java】Lambda入门
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值