java学习笔记反射与注解

1、反射

      Class对象在当前类加载到内存的时候就存在了,不是我们构建的,一个类型只有一个的,而Class对象中存储着这个类的所有信息(构造器,属性,方法...)

      创建对象时候,获取的是当前类的Class对象的复制体|镜像。

      只要获取到这个Class对象,就可以通过Class对象做事情。

      获取Class对象的方式:(反射源头)。

   类名.class             对象.getClass()       Class.forName("包名+类名")--推荐

      通过反射的源头Class 对象操作:

      类加载器:,加载器将.class文件的二进制文件装入JVM的方法区,并且在堆区创建描述这个类的java.lang.Class对象。用来封装数据。 但是同一个类只会被类装载器装载一次。

      类加载的时机:

  操作基中的静态变量          调用静态方法          创建类的实例(new 对象)

  反射              初始化子类(先父类后子类)

2、注解

     注解:(能看懂,能理解)

     注解的作用:

  (1)对程序解释说明的作用

  (2)可以获取到文件的信息或进行处理

     注解的使用:

    @注解名 位置:按照不同的逻辑不同的要求定义使用位置

       注解的分类:

       如果根据参数的不同不同进行分类:

(1)标记注解:没有参数

(2)单值注解:一个参数

(3)完整注解:多个参数

       根据用途和方法的不同进行分类:

     JDK内置注解      @Override 检查重写     @SuppressWarnings("all") 抑制警告                   @Deprecated 标记过时 不推荐使用

4、元注解: 注解注解的注解

      Target 用与描述注解使用的范围|位置

      如果@Target没有定义,默认使用在任意位置

      @Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期

      如果通过反射操作注解内容,需要Retention设置RUNTIME

     @Documented 文档API中可见

     @Inherited 表示一个注解类型会被自动继承

5、自定义注解 @interface

(1)参数: 定义参数可以使用无参方法形式定义,但是不是方法

(2)如果参数只有一个,推荐参数名为value,可以直接赋值,不用指定名字

(3)参数的类型: 基本数据类型,String,enum,Class,Annotation,以上类型的数组

(4)参数权限修饰,只能为public,default(不写默认)


https://www.bilibili.com/video/BV1EY411J776/icon-default.png?t=M276https://www.bilibili.com/video/BV1EY411J776/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值