一、数学知识的复习:
1:指数、对数、级数、模运算、证明的方法。
2:递归:当一个函数用它自己来定义时就称之为递归
f(x)=f(x-1)+x^2
递归的四条法则:
1)基准情形:可以跳出递归
2)不断推进: 每次递归调用都必须要使状况朝向一种基准情形推进
3)设计法则:假设所有的递归调用都能运行
4)合成效益法则:在求解一个问题的同一实例,切勿在不同的递归调用中做重复性的工作
二、泛型
1.使用object表示泛型
public class Demo{
private Object value;
public Object read(){ return value;}
public void write(Object o){ value=o;}
}
2.基本类型的包装类
3.使用接口类型表示泛型
4.数组类型的兼容性
5.利用java泛型特性实现泛型构件
5.1 简单的泛型类和接口
public class Demo<AnyType>{
private AnyType anyType;
public void write(AnyType a){anyType = o;}
public AnyType read(){return anyType;}
}
5.2带有限制的通配符
泛型不是协变的,若无附加的语法,则用户就会避免使用集合,因为失去协变性使得代码缺少灵活性。用通配符来弥补这个不足
public double toal(Collection<? extends Money> m){
for(Money mon:m){
mon.toalAmount();
}
}
5.3泛型的界限
5.4 类型擦除
5.5对于泛型的限制
1)基本类型
2)instanceof检测
3)static的语境
在一个泛型类中,static方法和static域均不可引用类的类型变量,因为在类型擦除后类型变量就不存在了另外,由于实际上只存在一个原始类,因此static域在该类的诸泛型实例之间是共享的。
4)泛型类型的实例化
5)泛型数组对象
6)参数化类型的数组