Test 18

  • 反射
    1. 发生在程序运行期间的动态机制,java的唯一动态机制
    2. Java反射机制,可以实现以下功能:
      1. 在运行时判断任意一个对象所属的类;
      2. 在运行时构造任意一个类的对象;
      3. 在运行时判断任意一个类所具有的成员变量和方法;
      4. 在运行时调用任意一个对象的方法;
      5. 生成动态代理;
    3. 反射的源头:
      1.  Class<T> Class类型的实例可以用来表示java中运行期间的一个类型
      2.  Class对象:Class对象在类第一次加载到内存后就已经存在的,唯一的,不变的,每一个类型只有一个
      3.  Class对象可以操作这个类的所有内容(属性方法构造器...)
    4. 如何获取反射的源头:Class对象
      1.  类名.class
      2.  Class.forName(权限定名)  权限定名:包名.类名   
      3. 对象.getClass()
    5. 对象.getClass()
      1. 构造器<T> getConstructor(类<?>... parameterTypes) 返回一个 构造器对象,该对象反映此 类对象所表示的类的指定公共构造函数。
      2. 构造器<?>[] getConstructors() 返回一个包含 构造器对象的数组, 构造器对象反映了此 类对象所表示的类的所有公共构造函数。
      3. 以上都是获取公共的,被public修饰的构造器
      4. 构造器<T> getDeclaredConstructor(类<?>... parameterTypes) 返回一个 构造器对象,该对象反映此 类对象所表示的类或接口的指定构造函数。
      5. 构造器<?>[] getDeclaredConstructors() 返回 构造器对象的数组, 构造器对象反映由此 类对象表示的类声明的所有构造函数。
    6. 反射创建对象
      1. Class-->T newInstance()  默认调用类型的空构造为对象初始化信息  
      2.  Constructor---> T newInstance(Object... initargs) 创建对象的同时调用当前构造器为对象初始化信息
  • 注解:java8引入的注解机制
    1. 作用:
      1. 注释
      2. 标志|标识
      3. 使用注解时可以传递参数,可以在程序中通过反射操作注解,获取配置的信息在程序中使用
      4. 可以存在于Class文件中
      5. 大量的代替|简化配置文件的使用
    2. 使用: @注解名(参数)
    3. 注解的分类:
      1. jdk的内置注解 : 常见
        • @Override 检查重写方法
        • @SuppressWarnings("all") 抑制警告
        • @Deprecated 表示已过时,不推荐使用
        • @FunctionalInterface 标识函数式接口
    4. 参数的个数分类:
      1. 标志|标识注解
      2. 单值注解
      3. 完整注解
    5. 元注解 : 注解注解的注解
      1. @Target 用于描述注解的使用范围
      2. @Retention 规定注解类型的声明周期
      3. @Documented 保留在API文档中
      4. @Inherited 标识注解类型可以被继承
    6. 自定义注解
      1. @interface 定义注解类型
      2. 默认实现java.lang.annotation.Annotation接口
      3. 自定义的注解类型就不能显示的继承其他父类,实现其他接口
      4. 如果注解类中的属性只有一个,建议名字为value,为value属性赋值可以直接赋值
      5. 为注解类型定义属性|字段: 数据类型 数据名();
      6. 属性的数据类型要求为: 基本数据类型 String, 枚举 , 注解类型 , 以及以上类型的数组
      7. 属性可以通过default提供默认值
    7. 注解解析器 : 通过反射操作注解
      1. 注意: 如果通过反射操作注解,注解类型的生命周期应该定义为运行期
  • 函数式接口:接口中只与一个必须被重写的抽象方法
    1. @FunctionalInterface
    2. 四大内置函数式接口:
      1. 消费型接口  Consumer<T>

void accept(T t)   --> 有来无回,有参数没有返回值

      1. 供给型接口  Supplier<T>

T get()

      1. 函数型接口  Function<T,R>

 R apply(T t)

      1. 段言型接口  Predicate<T>

boolean test(T t)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值