摘要:总结一些学习过程的易漏点。
一、基础知识
多态
- 多态是同一个行为具有多个不同表现形式或形态的能力。
- 方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
- 多态存在的三个必要条件:继承、重写、父类引用指向子类对象,比如:
1
Parent p = new Child();
- 多态的实现方式:重写、接口、抽象类和抽象方法。
抽象类
- 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
封装
- 对成员变量设置private,然后通过getter和setter方法来进行访问。
接口
- 当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
包的命名
- 通常使用小写的字母来命名避免与类、接口名字的冲突。
Vector 类
- 类似于python中的list,与ArrayList类似,但Vector类是线程同步的,ArrayList类是线程不同步的。
Dictionary 类
- Dictionary 类已经过时,在实际使用中可以通过实现Map 接口的方法来使用类似python的dict。
HashMap和HashTable的区别
- HashMap是线程不安全的,HashTable是线程安全的。
- HashMap效率高,HashTable效率低。
- 当不需要线程安全时用HashMap,需要线程安全时用ConcurrentHashMap(其效率也比HashTable高),HashTable基本上已经被淘汰了。
Enumeration类
- 已被迭代器取代。
Set和List的区别
- Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
- List和数组类似,可以动态增长,查找元素效率高,插入和删除效率低,因为会引起其他元素位置改变。
集合
- 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。
泛型
- 泛型类或泛型方法中的类型参数只能是引用型,不能是原始类型(像int,double,char等)。
- 本文作者: 随风而行
- 本文链接: http://yoursite.com/2020/02/23/Java-学习易漏点/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!