1.==/equals有什么区别?
== 比较两个对象的地址是否是同一个
equals 比较两个对象的值是否相等
2.深拷贝与浅拷贝的区别(常问)
浅拷贝并不打引用链的所有对象拷贝一份,而是把引用地址拷贝一份
深拷贝则是把引用链的所有数据都拷贝一份
3.接口和抽象类有什么区别?联系?
接口 interface 代表一种功能 约定
最初 interface 不能有实现(方法体)
Java8+之后可以default方法体
a. interface 定义功能,只能包含方法(实现)不能包含成员变量。可以被实现若干次
b. Abstarct Class:定义抽象的骨架实现,可以包含抽象方法或者具体实现,也可以包含成员变量,只能沿着一条路径继承
c. 什么时候用接口?什么用抽象类?
如果想要类有成员变量就用抽象类。如果定义一个功能时候,接口更加灵活。
4. final的作用是什么?
a.修饰类与方法,代表该类不可继承。声明的是不可继承性
b.修饰变量时,代表该变量不可修改,声明的是不修改性
5. Override和Overload有什么区别?
本质上没什么关系
同方法的参数不同(Overload 重载)横向
Override(重写),覆盖父类的方法,但是参数一样