关于注解:描述数据的数据
别名:元数据,标签,注释
例:@Test @Override
四大内置注解:
1.@Override:
作用:验证被标注的方法是否是方法的覆写
位置:在方法上
2.@Deprecated
作用:标记过时
多个注解可以同时使用
位置:
过时:可以使用,但不建议使用
3.@SuppressWarnings
作用:抑制警告
4.@SafeVarargs
作用:抑制堆污染警告
其他注解:
@Target
被标注的【注解】可以标注的位置
type:类
field:成员变量
method:方法
parameter:参数
LOCAL_VARIABLE:局部变量
2.@Retention
:注解的生命周期;类的生命周期:源码—》字节码—》运行时
SOURCE:源码
CLASS:字节码
RUNTIME:运行时
3.@Documented
被标注的注解在生成文档以后可以在文档显示
4.@Inherited
被标注的注解可以被继承
例:注解VIP 被@Inherited 所标注
类A 被VIP所标注,类B继承类A 那么B类上面也有VIP注解的功能
自定义注解:
传值:如果内部只有一个值,并且名字为value时可以省略不写
字段定义的时候可以有默认值:
有默认值的字段可以不传值
反射:动态地获取类里面的信息(调用方法,给字段赋值,创建对象)
反射的作用
1.增加程序的灵活性,避免将程序写死到代码里(解除硬编码的问题);
2.Java的反射机制它知道类的基本结构,可以动态的去获取类这样的结构的结构;
3.可以让程序员在不知道其它程序员会有什么类的时候就编写完成自己的代码;
获取字节码:
类获取字节码对象
Class forName(String name);name:全限定名 包 名+类名
Object getClass();
类名.class
Class 类的实例表示正在运行的.class文件
枚举是一种类,注释是一种接口
每个数组属于被映射为Class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象
忽略权限检查:setAccessible(true)
关于DOM(文档对象模型):
将一个XML(html)文档 的每一个元素解析成一个一个的对象
D Document 文档(XML文档) : 磁盘上面的xml文件
O Object 对象(Java对象) : 把xml文件封装成Java对象
M Model 模型
磁盘上面可以有很多的XML文件(文档)
在Java使用了一些类型来描述上面的文档
Node(节点)
Element (元素)
Attribute(属性) - Attr
Text(文本)
DOM:文档对象模型
有哪些对象:Document(文档),Element(标签元素),Attr(属性对象),Text(文本对象)
一切皆节点:所有的对象都是Node对象
所有的对象之间都是有关系的
听着:咱们学习XML的解析,一切的开始都要先找到 document对象
注意:XMLReader
SAXReader:
getRootElement():获取根节点
List elements(String name):返回所有指定名字的元素
Element element(String name):根据名字返回指定元素
String getText():获取元素的文本内容
addElement(String str):追加节点元素