文章目录
1、集合框架
2、xml
3、反射
4、自定义标签(jsp标签)
一、集合框架
1、list
默认的数据类型是Object,不能存放值类型,如果删除list集合中的元素需要使用迭代器
三种遍历:for、foreach、interator
特点:有序、有下标、能重复
list.remove 根据下标移除
list.hasnext 是否有下一个值
list.hasPrevious 是否有上一个值
ps:如果跳过hasnext直接执行hasPrevious则为空
intValue() 拆箱:引用数据类型转为值类型
integer() 装箱:值类型转为引用数据类型
去重复排序,代码如下:
List list=new ArrayList(new TreeSet(ls));
去重复,代码如下:
List list=new ArrayList(new HashSet(ls));
2、Set
特点:无序、无下标、不能重复
equels 与==的区别:
equels:比较的是内容
==:比较的是地址
SortedSet:无序 无下标 无重复,按照一定的规则进行排序
String s1=new String("a");
String s2=new String("a");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
compareTo 自然排序 用来比较 我与他比,代码如下:
public int compareTo(Student o) {
//按照学号的大小进行比较
//正数 负数 0 默认是按照从小到大进行排列
//return this.nid-o.nid;
//从大到小
return -(this.nid-o.nid);
}
compare 比较器, 代码如下:
public int compare(Student a,Student b) {
return a.getAge()-b.getAge();
}
ps:如果同时有自然排序跟比较器,比较器的优先级比自然排序高
如果没有比较器,则默认为自然排序
3、Map
特点:
1、以键值对的方式进行存储数据
2、无序
3、 键不能重复 如果重复键,值会进行替换
如果不知道键想要获取值,代码如下:
Set<String> key=map.keySet();//将所有的键保存到set集合中
for(String str:key) {
System.out.println(str+","+map.get(str));
}
二、xml
1、作用
2、DTD约束
3、xml解析
4、xml建模
三、反射
1为什么使用及优点
(1)是所有框架的基础
(2)反射能够对所有通用性的变化部分进行向上抽取
(3)提高java程序的灵活性、扩展性
(4)降低耦合度,提高自适应能力
(5)无需编码目标类
2、在哪使用
(1)通用工具类的封装
(2)自定义框架
3、重要知识点
(1)获取类对象:
类名.Class()
Class.forName(“完整的类名路径”)
对象.getClass();
(2)实例化对象
公有的无参构造器:newInstance
私有的构造实例化:
getDeclaredConstructor(数据类型.class) 调用以申明的构造方法
setAccessible(true) 公开权限
实例化
(3)动态调用方法:
getDeclaredMethod(“方法名”,“可变参数”)
setAccessible(true) 公开权限
实例化
(4) 读写属性:
getDeclaredField(…Class)
setAccessible(true) 公开权限
实例化
getDecaredFileds()
4、应用
(1)、select标签
(2)、通用分页的xxxDao中使用通用增删改查
(3)、自定mvc的动态方法调用中使用(增强控制器)
(4)、开发各种通用框架
5、缺点
(1)用于字段和方法接入时要远慢于直接代码
(2)反射代码比相应的直接代码更为复杂
(3)破坏封装性而导致安全问题(调用方法时忽略权限检查)
四、自定义标签(jsp标签)
1、标签组成
开始标签
标签体
结束标签
<demo>标签体</demo>
2、c标签
if
set
out
foreach
3、助手类的生命周期
5、应用