Java面试题库
JavaSE基础
接口和抽象类的异同点
相同点:
都不能创建对象
都可以定义抽象方法,并且一定要在子类中重写
不同点:
关键字不同接口的关键字是interface,抽象类的关键字是abstract
抽象方法中既可以有抽象的方法也可以有普通方法
接口中所有的方法都是抽象方法
抽象类的方法可以任意权限,接口中方法只能是public
抽象类只能单继承,接口可以多实现
重载(overload)和重写(overwrite)的区别
重载和返回值无关,参数列表和父类不同,方法名相同
重写:方法名、参数列表必须和父类完全一致
-
返回值类型要么相同,要么子类方法的返回值类型是父类返回值类型的子类
-
访问修饰符要么相同,要么子类访问修饰符范围大于父类
-
方法中抛出的异常,要么相同。要么子类方法抛出的异常比父类被重写方法抛出的异常更小或相同
String、StringBuffer和StringBuilder的区别
String字符串常量不可变使用字符串拼接时会开辟新空间
StringBuffer字符串变量可变线程安全字符串拼接直接在字符串后追加
StringBuilder字符串变量可变非线程安全字符串拼接直接在字符串后追加
执行效率:StringBuilder>StringBuffer>String
Throws和Throw的区别
位置:Throw方法内部,Throws方法名之后
作用:Throw抛出异常,Throws声明异常
个数:Throw一次抛出一个异常,Throws可以声明多个异常