5.5日 总结
1.在反射中,class. getConstructor(Class<?>... parameterTypes) Constructor<?>[] getConstructors()
都是返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 返回的是公共的方法
如果想返回所有的方法(包括私有的)应该用getDeclaredMethods()
这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
getDeclaredConstructors()
返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法
2
集合只能存储对象,长度可变,可以存取不同类型的对象
collection 有两个子接口 list列表 可存放重复元素,元素存取是有序的。 set 集合不可存放重复元素 ,元素存取是无序的
list接口的常用类 :
ArrayList
Vector 线程安全 已经被ArrayList 替代
LinkList 链表结构
取出LIst集合中元素的方式:
get(int index):通过脚标获取元素。
iterator():通过迭代方法获取迭代器对
set的常用接口类
HashSet:线程不安全,存取速度快。它是如何保证元素唯一性的呢? 通过 equals 和 hashcode 来保证元素的唯一性
TreeSet: 线程不安全,可以对Set集合中的元素进行排序。 通过compareTo或者compare 方法中的来保证元素的唯一性。元素是以二叉树的形式存放的。
Map集合常用类
Hashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。
HashMap:线程不安全,速度快,允许存放null键,null值。
TreeMap:对键进行排序,排序原理与TreeSet相同。
collection 与 collections的区别 collection集合框架的接口,常用 set,list
Collections是工具类
contines包含
list 如何保证线程安全(由一个方法)??
2.1java.util
类 Properties
java.lang.Object
java.util.Dictionary<K,V>
java.util.Hashtable<Object,Object>
java.util.Properties
读取配置文件
3
. 遍历枚举 enum.value()返回一个数组 再通过for增强进行遍历
特点 每一个枚举值都是一个枚举类型的子对象,因此公用此枚举类的构造方法,但是但是构造方法不可以被public修饰
enum是新特性中提供的一个新的引用数据类型
-------------------------------------------------------------
Annotation 注解
java.lang.Annotation
4 注解:定义标记简化书写。
特点:
将运行时出现问题体现编译时期:@Override
它就是程序中的一个标记。
定义格式:
@interface 注解名称
{
//注解属性。
属性类型 属性名();
属性类型 属性名() default 类型对应的值;
}
注解内部有一个默认的属性value。
属性类型:8种基本数据类型,String ,Class,数组,enum,Annotation
注解可以加载包,类,成员,局部。
注解有一个声明周期:
是通过一个注解来体现的。
@Retention(RetentionPolicy.RUNTIME)
RetentionPolicy是一个枚举类型。
有三个值:
CLASS:默认的。编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释
RUNTIME:编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取
SOURCE:编译器要丢弃的注释
注解如何来获取:
通过反射的形式。类的注解获取类所属Class对象。
方法注解要获取Method对象。
什么时候用注解呢?
配置信息较为简单可以将其配置在注解上。
方便于类在反射的是使用该配置信息。这样就不用在对配置信息文件进行读写操作。
注解也有一定义的局限性。
将值直接定义在程序内部。
------------------------------------------------------
4 5.6日 XML
最外层标签只能有一个
<![CDATA[…………]]> 内容不被解析
<!-- adf adf--> 这是注释
(#PCDATA)可被解析的数据
引入dtd 给xml添加约束 <!DOCTYPE students SYSTEM "1.dtd">
|
DTD 文档——元素定义
语法格式:
<!ELEMENT 元素名称 使用规则>
示例:
<!ELEMENT 书架 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
DTD 规则 空格 不用按照顺序 ,按照顺
<!ELEMENT students (student+)>
<!ELEMENT student (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
XMLSPY 强解析
DTD 文档——属性定义
语法格式:
<!ATTLIST 元素名
属性名1 属性类型 设置说明
属性名2 属性类型 设置说明
……
>
示例:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
>
#REQUIRED:必须设置该属性
#IMPLIED:可以设置也可以不设置
#FIXED:说明该属性的取值固定为一个默认值,
XML应用:
<商品 类别="服装" 颜色="黄色">…</商品>
<商品 类别="服装">…</商品>
CDATA:指的是纯文本,即由字符、符号组成的字符串
Enumerated:属性也可以被描述为一组可接受的取值的列表, XML文件中对属性的赋值将从这个列表中选取一个值。这 类属性属于枚举类型ENUMERATED,不过,关键字 ENUMERATED是不出现在Dtd定义中的。
ID:是用属性值的方式为文件中的某个元素定义唯一标识的方 法,由处理文件的程序或脚本语言使用。
IDREF:允许一个元素的属性使用文件中的另一个元素,方法就 是把那个元素的 ID标识值作为该属性的取值
ENTITY:将多内容文本或者一个文件用一个简称来标识。