注解,反射,加载器
注解
- annotation
- 注释 comment
- 常见注解
- 从jdk5.0开始引进的技术
- 注解的作用
-
和comment一样
-
可以被其他程序读取 ,
-
检查跟约束
6. 格式
-
@SupressWarmings(values=“unchecked”)
- 通过反射机制对注解进行访问
8. 可以附加在package,class,method,field等上面,作为辅助信息
9. 注解都是定义在java.lang包中
- 通过反射机制对注解进行访问
内置注解
常见内置注解
- @Override:表示一个方法声明打算重写超类中另一个方法声明
- @Deprecated:表示不鼓励使用该元素
- @SuppressWranming:(需要添加参数,才能使用),用来抑制编译时的警告信息
元注解
- 元注解的作用就是负责注解其他注解,java定义了4个标准的meta-annotation类型,它们被用来提供给其他annotation类型说明
- @Target:描述注解的使用范围
- @Retention:表示需要在什么级别保存该注释,用用于描述注释的生命周期(SOURCE<CLASS<RUNTIME),超过了就没用了
- @Dcument:说明该注释将被包含在javadoc中
- @Inherited:说明子类可继承父类中的该注释
反射Reflection
静态语言和动态语言
- 动态语言:某一类在运行时可以改变其结构的语言,
- 静态语言:运行时结构不可变
定义
反射:是java被视为动态语言的关键,反射机制允许程序在执行过程借助于Reflection API获得任何内部类的内部信息,并能直接操作任意对象的内部属性及方法
重点
- 一个类在内存只有一个Class对象,
- 一个类被加载后,类的整个结构都会被封装在Class对象中
Class类
- Class本身是一个类
- Class对象只能右系统创建
- 一个加载类在jvm中只会有一个Class实例
- 每个类的实例都会记得自己是由哪个Class实例所生成
- 通过Class可以完整地得到一个类中所有被加载的结构
获取Class类的实例
- 只要元素类型和维度一样就是同一个Class
java内存