1.重写和重载的区别
方法重写:子类的方法覆盖父类的方法,要求返回值,方法名和参数都相同。
方法重载:在一个类里面有两个和两个以上的方法,拥有相同的方法名字,但是参数不同,方法体不同。
2.throw 和throws关键字的区别
1、throws出现在方法函数头;而throw出现在函数体。
2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
3.map集合介绍
1.Hashtable:底层是哈希表结构,线程安全,并且键和值都不能为空,按一定的顺序排序
2.HashMap:底层是哈希表结构,线程不安全,并键建和值都能为空,没有顺序。
3.LinkedHashMap:底层是链表和哈希表
4.TreeMap:底层二叉树,线程不安全
4.final 修饰符知识点总结
1. final修饰类:
1final修饰的类不能被继承,即不能拥有自己的子类
2. final修饰方法:
final修饰的方法不能被重写,可以被重载
重写的前提是子类可以从父类中继承方法,如果父类中用final修饰的方法同时访问控制权限是私有
final 修饰变量:
一点定义final变量并在首次初始化后,final修饰的变量值不可被改变
5.ArrayList扩容
ArrayList默认容量是10,如果初始化时一开始指定了容量,或者通过集合作为元素,则容量为指定的大小或参数集合的大小。每次扩容为原来的1.5倍,如果新增后超过这个容量,则容量为新增后所需的最小容量。如果增加0.5倍后的新容量超过限制的容量,则用所需的最小容量与限制的容量进行判断,超过则指定为Integer的最大值,否则指定为限制容量大小。然后通过数组的复制将原数据复制到一个更大(新的容量大小)的数组。