注解和反射
注解Annotation
形式
@+“注释名”
内置注解
@Override 重写超类中的一个方法声明
@Deprecated 不推荐使用的已废弃的方法
@SuppressWarnings 镇压警告
元注解
注解其他注解,在构造注解时使用
@Target 用于描述注解的使用范围
@Retention 在什么级别保存该注解信息,runtime(运行时)>class(class文件)>sources(源代码)
@Document 说明该注解包含在javadoc中
@Inherited 说明子类可以继承父类中的该注解
反射
动态语言
可以在运行时改变自身结构 C#,JavaScript,PHP,Python
静态语言
运行时结构不能改变 Java,C,C++
Java通过反射被视为准动态语言,在程序执行时取得类的内部信息
含义
由对象获得Class
Class 的加载过程
main->父类->子类
子类使用父类方法时,子类不会被加载
常量不会引起类的加载
Class的实例化过程
static(按书写顺序执行) ->构造函数