一、基本数据类型不能使用作为Compareable传递,但是包装类可以,因为它们都实现了Compareable接口
二、IS-A在面向对象程序设计里指的是父类和子类的继承的关系
三、compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Double, Integer, Float, Long 或 Short 类型的参数等
语法
public int compareTo( NumberSubClass referenceName )
返回值
如果指定的数与参数相等返回0。
如果指定的数小于参数返回 -1。
如果指定的数大于参数返回 1。
四、自动拆箱:
如果一个Int型量被传递到需要一个Integer对象的地方,那么,编译器将在插入一个对Integer构造方法的调用,这就叫自动装箱,相反为自动拆箱
五、增强的For循环
jdk1.5出现的新特性---->增强for循环
增强for循环的作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)
增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。
增强for循环的格式:
for(数据类型 变量名 :遍历的目标){ //数据类型 变量名:声明一个变量用来接收遍历目标遍历后的元素
}
1. 增强for循环底层也是使用了迭代器获取的,只不过获取迭代器由jvm完成,不需要我们获取迭代器而已,所以在使用增强for循环变量元素的 过程中不准使用集合 对象对集合的元素个数进行修改。
2. 迭代器遍历元素与增强for循环变量元素的区别:使用迭代器遍历集合的元素时可以删除集合的元素,而增强for循环变量集合的元素时,不能调用迭代器的remove方法删 除 元素。
3. 普通for循环与增强for循环的区别:普通for循环可以没有遍历的目标,而增强for循环一定要有遍历的目标。
六、泛型集合不是协变(类型兼容,即父类可以同时声明两个子类对象并调用)的,Java5使用通配符(T)来表示参数类型的子类,用来弥补泛型不是协变的不足;
类型擦除:泛型类可以由编译器通过类型擦除的过程转变为非泛型类,编译器这样就会生成一种和泛型类同名的原始类,但是类型的参数都被删除了,类型变量由类型限界来代替。
注意事项:1、基本类型不能用作类型参数。
2、不能创建泛型类型的实例如:T obj = new t();//右边是非法的
3、不能创建泛型的数组
4、参数化类型的数组的实例化是非法的
函数对象:一种将函数作为参数传递的独创方法