一、方法重写和方法重载的区别?
方法重写:子父类间,出现方法完全一致的情况,包括返回值类型,方法名,参数列表。
方法重载:同一个类中,出现方法名相同,参数列表不同的情况,与返回值无关。
二、成员变量和局部变量的区别?
总的来说有三点:
1.定义位置不同:
成员变量定义在类中,方法外
局部变量定义在方法中或者方法的形式参数中
2.初始化值不同
成员变量有默认值
比如 int--0 , String--Null , boolean--false
局部变量没有默认值,必须先声明再赋值,然后才能使用
3.存储位置(生命周期)不同
成员变量存在堆中,随着对象的存在而存在
局部变量存在栈中,随着方法被调用而存在
三、抽象类和接口的区别?
1.各自的成员特点:
抽象类成员:
1.成员变量:可以是变量,也可以是常量
2.构造方法:有构造方法,用来初始化父类数据,供子类使用
3.成员方法:可以有抽象方法,也可以有非抽象方法
接口成员:
1.成员变量:只能是常量,默认修饰符:public static final
2.构造方法:没有
3.成员方法:只能是抽象类,默认修饰符:public abstract
2.类与接口的关系
A:类与类
继承关系,只能单继承,可以多层继承。
B:类与接口
实现关系,可以单实现,也可以多实现。
还可以在继承一个类的同时实现多个接口。
C:接口与接口
继承关系,可以单继承,也可以多继承。
3.抽象类 -- 体系的共性内容,体现is a 的关系
接口 -- 体系的扩展内容,体现的是like a的关系
四、数组与集合的区别
数组特点:
1)长度固定
2)可以存储基本和引用类型
3)类型必须是一致的
集合特点:
1)长度可变
2)仅可以存储引用类型
3)集合存储的引用类型可以是不同类型的
五、final finally finalize的区别
1.final 修饰类、方法、成员变量
2.finally 除非jvm退出,finally的代码肯定会执行。如果有return语句,在return前执行(确切说是return中)
3.finalize 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
六、flush()和close()的区别?
flush():只刷新缓冲区,流对象还可以继续使用。
close():先刷新缓冲区,再关闭流对象。流对象不可以继续被使用
七、sleep和wait()的区别?
wait():是Object类的方法,可以不用传递参数。释放锁对象。
sleep():是Thread类的静态方法,需要传递参数。不释放锁对象。
|
|