1.抽象和接口的区别:
 

抽象 接口
1. 抽象类内可以有非抽象方法 接口内只能有抽象类方法

一个类只能继承一个抽象类 一个类可以实现多个接口
    抽象类
接口内属性都是static final         
1. 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),抽象类可以 有非抽象的方法 
2. 接口中的实例变量默认是 final 类型的,而抽象类中则不一定 
3. 一个类可以实现多个接口,但多只能实现一个抽象类 
4. 一个类实现接口的话要实现接口的所有方法,而抽象类不一定 
5. 接口不能用 new 实例化,但可以声明,但是必须引用一个实现该接口的对象 从设计层面来说,抽象是对类的抽 象,是一种模板设计,接口是行为的抽象,是一种行为的规范。

2.java的异常分类
异常分为 检查异常 和 非检查异常
检查异常是程序可以自己检查出有问题的异常,指 写代码是需手动检查的异常,如IO、SQLException
非检查异常,程序不能自动检查,需要在运行时才能发现的异常,也称运行时异常,RuntimeException,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)。

3.数据库连接池
 当一个连接通道使用完后,系统并不会将其释放,而是将它存储在连接池里。下次需要使用连接通道的时候,系统会判断连接池里是否有空闲的连接通道对象。如果有,设置其连接字符串,修改其连接状态,重新使用。

4.字符串String 不可变
字符串本质是一个字符数组,private final char value[],因为是private 和 final 的,所以外界无法对改数组进行修改内容。
像replace、substring这些函数实际上是返回了一个新的字符串对象。
string字符串在拼接的时候,从它的字节码可以发现,它每次都是生成一个新的StringBulider ,再执行append来拼接字符串的,因此多次拼接时效率较低。

5.List 和Array互转
List——>Array
注意toArray()要传入一个数组参数,因为无参的toArray()返回的是Object[],Object[]不可以向下目标类型。

Array——>List

这种情況