面试题:13(完成)

1.10.反射(了解)

反射是在程序运行中通过非常规手段获取并操作任意一个类(Class对象)中的“构造器,成员变量,成员方法的一种动态获取调用方式。
特点:利用反射调用类中的属性和方法时,可以通过某些手段无视修饰符的限制,使用反射创建对象,代码比较复杂,但是功能强大且操作灵活。
扩展:每个类(Class对象)都会在堆内存里面new一个区域存放数据,通过获取堆内存里面数据的一个流程就是反射的原理。

6.29.反射机制的优缺点?

优点:

  1. 能够在运行时动态获取类的数据(动态获取),提高灵活性。
  2. 可以通过某些无视类中的修饰符限制访问数据。

缺点:

  1. 比常规获取类中数据的代码更复杂。
  2. 由于是通过类获取内存在的数据,所以需要解析字码,相对性能较低。
  3. 因为可以无视类中的修饰符限制访问数据,破坏了类的封装性,存在不稳定性。

    6.30.获取Class对象的有几种方法?

    有三种方法:

  4. 类名.Calss。

  5. new 类名.getclass。
  6. class.forname(“类名的访问路径”) 最常用的静态方法,比较安全,性能较好。

6.31.四种标准元注解是哪四种?

@Target 修饰的对象范围
@Retention 生命周期
@Documented 标记这些注解是否包含在用户文档中
@Inherited 指示注解类型被自动继承.。如果在注解类型声明中存在Inherited元注解,并且用户在某一类声明中查询该注解类型,同时该类声明中没有此类型的注解,则将在该类的超类中自动查询该注解类型。

6.32.注解(annotation)是什么?

annotation(注解)是JDK1.5的新特性,也是一个接口,注解是一种应用于类,方法,参数,变量,构造器及包声明中的特殊修饰符,用来描述元数据的一种工具,可以对类中的某一部分进行标记,指定一个标准,通过注解还可以给类增加额外的信息。