复习内容:
//定义PROPERTY元素,这样方便变量的使用和修改
<property name="class.dir" value="classes" />
<property name="src.dir" value="src" />
<java classname="cn.itcast.MyClassLoader">
<classpath>
<pathelement location="${classes.dir}" />
</classpath>
//可以这样直接定义变量,然后用ANT调用的时候直接为这两个参数赋值
//如:ANT -Dargs(0)=t -Dargs(1)=tb,这样方便在CMD的时候直接调用,这样赋值 //级别更高一些
<arg line="${arg0} ${arg1}" />
</java>
二.集合
Enumeration是一个接口,如果打印出一个Enumeration对象,则是Enumertation的实现类
一个集合的类型很多
TREESET是按对象大小来存储的,但一定要实现一个接口---比较大小的或是继承比较大小的接口
TREESET:在向TREESET里加一个对象的时候,首先要进行比较,(不允许存相同的对象)
假设TREESET现在是比身高,哪天要增加比较年龄,只要写一个年龄的比较器即可,不用修改TREESET组合,闭合原则也得以体现.
同一个对象可以往VECTOR中加入多次
HASHSET:
如果对象相等,则HASHCODE值一定相等,如果不是同一个对象,HASHCODE也有要能相等.
HASHCODE可以帮助迅速定位在HASHSET中的位置
(由此引入一个模式----策略模式)
MyFileter implement FileFilter{
boolean accept(File path){
//判断文件名是不是以TXT结尾的,或是看是不是目录,两者其一则返回TRUE
return path.getName().endswith(".txt") || path.isDirectory();
}
}
Files [] files = dir.listFile(new MyFileter())
原则:
"尽量使用组合,避免使用继承",-------封闭原则
泛型:
public boolean equals(Object obj)
如何通过J2SE5.0中的@Override注释来避免这种问题.
NATIVE2ASCII命令使用:NATIVE2ASCII -ENCODEING 源文件名 目标文件名
大数组将会导致虚拟机OutOfMemoryError;
递归调如果无条件的进行,则会导致堆栈耗尽;
小技巧:
1.递归使用技巧:在函数调用的时候尽量延着函数所要发展的方向去考虑,在函数体中实现本次所要实现的功能.
2.entry:项
Set<Map.Entry<String,Integer>> mes = hm.entrySet();
//Map.Entry<String,Integer> me 不能这样