Java注解

  1. @Override 作用防止子类重载父类的方法

  2. 注解的分类:
    源码注解 :注解只在源码中存在,编译成.class文件就不存在了
    编译时注解 : @Override 在编译期间就能发挥作用
    运行时注解 : 框架的一些东西,在运行时发挥作用

  3. 如果注解只有一个成员,则成员名必须为value(), 在使用时可 以忽略成员名和赋值号; 注解类可以没有成员,没有成员的注解称为标识注解

  4. 元注解:
    @Target({ElementType.METHOD, ElementType.TYPE})

作用域: CONSTRUCTOR 构造方法的声明

FIELD 字段声明

LOCAL_VARIBLE 局部变量声明

METHOD 方法声明

PACKAGE 包声明

PARAMETER 参数声明

TYPE 类接口

@Retention(RetentionPolicy.RUNTIME)

生命周期: SOURCE 源码注解

CLASS 编译注解

RUNTIME 运行时注解

@Inherited

是否允许子类继承

@Documented

生成JavaDO时会生成Java注解

5.解析注解:
通过反射获取类、函数或者成员上的运行时注解信息,从而实现动态控制程序运行的逻辑

区别

.Class Class.forName是编译时决定的

.getClass()是运行时决定的

.class 只是装入内存,不对类进行初始化,不会执行构造函数和静态非静态 代码块

Class.forName():

.getClass(): 只会对类进行静态初始化

posted @ 2018-05-06 17:21  Loading~  阅读(177)  评论(0编辑  收藏  举报