最近参加面试,现在来记录一下:
一、接口与抽象类的区别
1、接口被类实现,抽象类被类继承。
2、接口只有方法声明,抽象类有方法声明也可以有方法实现。(注:java1.8以后版本接口中可以有静态方法和默认方法)
3、抽象类中可以没有抽象方法
4、接口可多继承接口,类只能单继承
5、接口中的变量是公共静态常量,抽象类中是普通变量
6、接口是设计的结果,抽象类是重构的结果
二、StringBuffer和StringBuilder的区别,以及内在构造
1、效率:StringBuffer<StringBuilder
2、StringBuffer:线程安全
StringBuilder:线程非安全
3、内部构造相同,都是char[]
三、左联,右联,内联和全联
a左联b 先取出a中的数据,再取出b与a匹配的数据,如果没有用null代替
Select id from a left join b on a.id=b.id
a右联b 先取出b中的数据,再取出a与b匹配的数据,如果没有用null代替
Select id from a right join b on a.id=b.id
a内联b,取出a、b相匹配的数据
Select id from a inner join b on a.id=b.id
a全联b,将a和b匹配的数据一一显示,没有匹配的也一行一行显示
Select id from a full join b on a.id=b.id
四、group by 用在什么时候
分组统计的时候
五、order by用于
用于排序,asc顺序,desc逆序
六、什么是多态
多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。