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