继承层次:由一个公共类派生出来的所有类的集合
继承链 :在继承层次中,从某个特定的类到其祖先的路径
多态 :一个对象变量可以指示多种类型的现象
动态绑定:子类重写了父类的方法,当对象调用一个方法时,编译器自动搜索并找个符合条件的方法
静态绑定:如果是Private方法,static方法,final方法或者构造器,那么编译器可以准确的知道该调用哪个方法
内联 :如果一个方法没有被覆盖并且很短,那么编译器能够对它进行优化的过程
final关键字:修饰一个类--说明这个类不能被继承,final类会自动将方法设为final方法,但不包括域
修饰一个方法--说明这个方法不能被覆盖(重写)
修饰一个域--说明这个域是一个常量
强制类型转化: 基本数据类型的转换-----高精度转换为低精度要强制转换
对象类型的转换-----只能在继承链上转换,子类转换成父类要强制转换,父类转换成子类需要进行instanceof检查
抽象类: 只想把它作为派生其他类的基类,而不想作为使用的特定类
用abstract定义 public abstract class name{}
含有一个或多个抽象方法的类一定要申明为抽象类,没有抽象方法的类也可以申明为抽象类
抽象类可以包含具体的域或具体的方法
抽象类不能被实例化,但是可以定义一个抽象类的对象变量
接口 : 描述类具有什么功能,但并不给出功能的具体实现
在接口中只能声明方法和常量,不能包含实例域。方法自动属于public 域自动属于public static final
接口不能被实例化,但是可以定义一个接口的变量。这个变量必须引用了实现了这个接口的类对象
实现接口时,必须把接口中的所有的方法都实现并且设为public。前者没做到则该类必须定义为一个抽象类
四种访问修饰符: public 对所有类都可见
protected 对本包内的类和子类都可见
default(friendly) 对本包的类可见
private 对类内部可见
Object类:所有类的超类
equals(Object obj):指示其他对象是否与此对象相等,指的是状态上的相等即值相等
hashcode() :返回该对象的哈希表码值,两个对象相等equals(),则哈希码相等
toString() :返回该对象的字符串表示
getclass() :返回该对象的运行时类
finalize() :当垃圾回收机制确定不存在对该对象的引用时,由该对象的垃圾回收器调用该方法
clone() :创建并返回一个此对象的副本(深克隆和浅克隆)(深克隆要实现一个cloneable接口)
泛型数组链表ArrayList :是一个List接口的动态数组的实现。在添加和删除元素时会自动调节数组的大小
size() 返回数组当前元素的数量
trimToSize() 把当前数组元素的数量固定为数组的大小
add() 在数组末尾添加一个元素
set(int index,T obj) 修改指定位置的值
get(int index) 获得指定位置的值
链表LinkedList : 由于动态数组在插入中间和删除中间元素上的效率低,所以出现了LinkedList
是一个List接口的链表的实现。目的是为了减少在数组中间插入和删除元素的代价
遍历链表要通过迭代器实现。通过调用iterator()方法来实现一个迭代器,然后使用hashnet()和next()方法
往链表中间插入和删除元素要通过调用listIterator()方法来实现迭代器ListIterator。然后使用add()和remove()