1. 解释
不是程序本身,但是可以对程序作出解释,可以被其他程序读取。(对比注释只能被人看懂)
2. 内置注解
(1)Override 这个方法使重写方法
(2)Deprecated 这个方法不建议使用,过时了
(3)SuppressWarnings 不给这部分显示编译错误提示
3. 元注解:
负责解释其他注释,通常用于管理自定义注释
(1)Target 用于描述注解的使用范围
type是类,下图使在类上也有效
(2)Retention 表示该注释信息应该保存在什么级别
一共三个级别:
source表示在源码中有效
class表示直到被编译成 .class文件依旧有效
runtime 表示直到运行依旧有效 (通常用这个,包含了前两个)
(3)Document 表示是否将该自定义注解生成在 Javadoc 中
(4)Inherited 表示该自定义注解是否可以被子类继承
4. 自定义注解
注解对代码都是没有直接影响的,需要注解处理器处理了注解后才能起到相应的作用。注解内部定义的都是参数 还是不太懂通过参数如何实现
只有注解中只有一个返回值且名字是value,使用时可以不写成 value=“111” 的形式
1. 获取类的方法
(1)普通类
一个类只有一个class对象,所以上述代码输出值一样
(2)内置类
(3)通过子类获取父类
已有子类class获得父类
(4)利用ClassLoader
2. 获得类的信息
3. 使用
(1)动态的创建对象
如果想调用有参的构造函数,要先获取到该构造函数
(2)比较普通方法和反射调用方法的性能
3. 通过反射获取泛型
输出
4. 反射操作注解
获得注解
输出
输出
1. 概念区分
2. 哪些类型可以有class对象
3. Java类的加载过程
4. 类什么时候初始化
在main()中主动引用子类:main()所在的类被初始化,然后父类初始化,然后子类初始化
5.类加载器:
Java文件被编译成 *. class文件后,类加载器将 *. class文件加载到内存中,生成class对象
(1)类加载器的类型
(2)可加载的路径