面试题十九:Java高级面试 — 注解

目录

相关文章:

一、注解概念

1、概念

2、什么是元数据(metadata)

二、注解分类

1、系统内置标准注解

2、元注解

三、Android support annotations

四、面试题

4.1、为什么使用注解的形式?

4.2、使用注解的原理?

4.3、会不会影响执行效率?为什么没有降低执行效率?


相关文章:

注解(Annotation)-Android讲解

Java 注解完全解析

轻松打造一个自己的注解框架

一、注解概念

1、概念

Annotation就是Java提供的,一种让元程序中元素关联任何信息和任何元数据(metadata)的途径和方法。其实,可以把注解理解为一种接口,程序可以通过反射获取指定元素的注解对象,然后通过这个注解对象来获取注解里面的元数据。它是JDK5.0以后引入的,还可以用来创建文档,以及跟踪代码的依赖性。
基本规则:Annotation不能影响程序代码的执行,无论增加、删除Annotation,代码都始终如一的执行。

2、什么是元数据(metadata)

  • a、元数据是以标签的形式存在于Java代码中
  • b、元数据描述的信息是类型安全的
  • c、元数据需要编译器之外的工具额外的处理用来生成其他的程序部件
  • d、元数据可以只存在于Java源代码级别,也可以存在于编译之后的Class文件内部

二、注解分类

1、系统内置标准注解

  • a、Override
  • b、Deprecated
  • c、SuppressWarnnings

2、元注解

  • a、@Target
  • b、@Retention
  • c、@Documented
  • d、@Inherited

三、Android support annotations

1、Nullness注解
2、Resource Type注解
3、Threading 注解
4、Overriding Methods 注解@CallSuper

四、面试题

4.1、为什么使用注解的形式?

目的在在加快Android开发的效率。通过使用它开放出来的注解api,你几乎可以使用在任何地方, 大大的减少了无关痛痒的代码量,让开发者能够抽身其外,有足够的时间精力关注在真正的业务逻辑上面。而且通过简洁你的代码,也提高了代码的稳定性和后期的维护成本。

4.2、使用注解的原理?

通过反射机制实现的。通过在Runtime运行期去反射类中带有注解的Field和Method,然后再去执行注解相对应的逻辑代码。

4.3、会不会影响执行效率?为什么没有降低执行效率?

首先,不会影响执行效率。原因是:在编译器中加了一层额外的自动编译步骤,用来生成基于你源码的代码。生成的代码是你源码的直接子类,而且自动生成的类的名称就是父类名称后面加个下划线。

 

你可能感兴趣的:(Android:面试2.0)