Day 12:
1.接口
接口的特点:
- Java是单继承的语言,利用接口可以模拟多继承
- 接口是对抽象类的进一步抽象,是方法声明和常量的定义集合
- 接口不可以被实例化
- 实现类必须实现接口的所有方法
- 实现类可以实现多个接口
- 接口中的变量都是静态常量
定义一个接口MultiInterface.java:
public interface MultiInterface {
public static final double PI = 3.1415926;
public void callArea();
default void before(){ //仅限于JDK1.8以后可使用
System.out.println("现在开始计算:");
}
}
2.集合
Java集合按照其存储结构可以分为两大类,即单列集合Collection和双列集合Map。
Collection是单列集合类的根接口,其有两个重要子接口 List 和Set。
- List接口的主要类有 ArrayList 和 LinkedList
- Set接口的主要类有 HashSet和TreeSet
- Map接口的主要实现类有HashMap 和 TreeMap
各接口的特点:
- List 接口存储一组不唯一,有序(插入顺序)的对象
- Set 接口存储一组唯一,无序的对象
- Map接口存储一组键值对象,提供key到value的映射
3.泛型
Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
- 类型安全。泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)
- 消除强制类型转换。泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会
- 潜在的性能优势。泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已
4.Map
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作,最常用的实现类是HashMap。