Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法

简介: Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法

Java中的注解(Annotation)是JDK 5.0及以后版本引入的一种注释机制,用于为代码添加元数据。注解本身不会影响代码的执行,但可以通过反射等机制在运行时读取注解信息,从而改变代码的行为。注解是代码的一种元数据,可以为编译器、工具或其他应用程序提供信息。


自定义注解的步骤如下:

  1. 使用@interface关键字定义注解。
  2. 在注解中定义元素(相当于注解的属性),使用数据类型作为元素类型,并使用default为元素指定默认值。
  3. 注解可以定义在类、方法、字段、参数等上面。

下面是一个自定义注解的例子:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

// 定义一个名为MyAnnotation的注解
@Target(ElementType.METHOD) // 注解可以作用在方法上
@Retention(RetentionPolicy.RUNTIME) // 注解在运行时保留,可以通过反射获取
public @interface MyAnnotation {
    // 定义一个名为value的元素,默认为"Hello World"
    String value() default "Hello World";
}

注解的经典用法有很多,以下是一些例子:

  1. 标记注解:例如,Java自带的@Override注解,用于表示一个方法是重写了父类的方法。编译器会检查该方法是否确实重写了父类的方法,如果没有,则报错。
public class MyClass extends ParentClass {
    @Override
    public void myMethod() {
        // 方法体
    }
}
  1. 配置注解:例如,Spring框架中大量使用了注解进行配置,如@Autowired用于自动装配bean,@Service@Controller@Repository等用于标识bean的类型。
@Service
public class MyService {
    // ...
}
  1. 元数据注解:例如,Hibernate ORM框架使用注解来描述Java类与数据库表之间的映射关系。
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class MyEntity {
    @Id
    private Long id;
    // ...
}
  1. 自定义注解用于代码检查或生成:开发者可以根据需要自定义注解,并在编译时或运行时通过工具检查注解或根据注解生成代码。例如,可以使用自定义注解来标记需要进行特定处理的代码段,然后编写工具来扫描这些注解并执行相应的处理。

总之,注解为Java开发提供了更灵活、更强大的代码描述和配置能力,使得开发者可以更加高效地编写和维护代码。

相关文章
|
11月前
|
Java 编译器 开发者
注解的艺术:Java编程的高级定制
注解是Java编程中的高级特性,通过内置注解、自定义注解及注解处理器,可以实现代码的高度定制和扩展。通过理解和掌握注解的使用方法,开发者可以提高代码的可读性、可维护性和开发效率。在实际应用中,注解广泛用于框架开发、代码生成和配置管理等方面,展示了其强大的功能和灵活性。
242 25
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
12681 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
251 7
|
前端开发 Java 程序员
面试官刁钻提问?轻松应对 break、continue 和 return 的巧妙用法
小米,一位技术博主,针对 Java 面试中常见的 `break`、`continue` 和 `return` 关键字进行了详细讲解。通过打怪故事和代码实例,解释了它们的使用场景及注意事项,帮助读者更好地理解和应用这些控制语句。
196 12
面试官刁钻提问?轻松应对 break、continue 和 return 的巧妙用法
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
437 5
|
Java 编译器
Java进阶之标准注解
Java进阶之标准注解
140 0
|
存储 安全 Java
深入理解Java中的FutureTask:用法和原理
【10月更文挑战第28天】`FutureTask` 是 Java 中 `java.util.concurrent` 包下的一个类,实现了 `RunnableFuture` 接口,支持异步计算和结果获取。它可以作为 `Runnable` 被线程执行,同时通过 `Future` 接口获取计算结果。`FutureTask` 可以基于 `Callable` 或 `Runnable` 创建,常用于多线程环境中执行耗时任务,避免阻塞主线程。任务结果可通过 `get` 方法获取,支持阻塞和非阻塞方式。内部使用 AQS 实现同步机制,确保线程安全。
1359 3
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
318 43
Java学习十六—掌握注解:让编程更简单
|
架构师 Java 开发者
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
在40岁老架构师尼恩的读者交流群中,近期多位读者成功获得了知名互联网企业的面试机会,如得物、阿里、滴滴等。然而,面对“Spring Boot自动装配机制”等核心面试题,部分读者因准备不足而未能顺利通过。为此,尼恩团队将系统化梳理和总结这一主题,帮助大家全面提升技术水平,让面试官“爱到不能自已”。
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
|
IDE Java 编译器
java的反射与注解
java的反射与注解
126 0