面试题
面向对象特征: 封装 继承 多态
多态好处:可扩充 ,可替换 ,灵活 简洁
实现多态方式:1.继承父类 重写方法 2. 接口 3.同一个类中 方法的重载
接口意义: 不影响主题程序的情况下 拓展新功能, 灵活
接口和抽象类的区别
| 比较 | 抽象类 | 接口 |
|---|---|---|
| 默认方法 | 抽象类可以有默认的方法实现 | java 8之前,接口中不存在方法的实现. |
| 实现方式 | 子类使用extends关键字来继承抽象类.如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现. | 子类使用implements来实现接口,需要提供接口中所有声明的实现. |
| 构造器 | 抽象类中可以有构造器, | 接口中不能 |
| 和正常类区别 | 抽象类不能被实例化 | 接口则是完全不同的类型 |
| 访问修饰符 | 抽象方法可以有public,protected和default等修饰 | 接口默认是public,不能使用其他修饰符 |
| 多继承 | 一个子类只能存在一个父类 | 一个子类可以存在多个接口 |
| 添加新方法 | 想抽象类中添加新方法,可以提供默认的实现,因此可以不修改子类现有的代码 | 如果往接口中添加新方法,则子类中需要实现该方法. |
==和equals区别:
“==“操作符专门用来比较两个变量的值是否相等,“equals“方法是用于比较两个独立对象的内容是否相同。
== 是比较符 equals 是一个方法
&和&&的区别:
&和&&都是逻辑与 的运算符, 代表和,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&有短路功能 当第一个表达式是false时,那么不计算后面的表达式
final,finally,finalize区别
final:修饰符,终止 如果一个类被修饰为final,那么该类不能生成子类 不那个被继承 , 所以一个类不能用abstar和final同时声明, 将变量生成final时候,可以保证在使用中不 被改变
finally:再异常处理时提供 finally 块来执行任何清除操作 在finally的方法块中的代码总是会被执行
finalize:
HaseMap和Hashtable区别
都是属于Map接口
HashMap:没有分类或排序 允许一个null值或多个null值
Hashtable:不允许null值 比hashMap慢 属于同步 安全性高
sellp()和wait()区别
sellp():指让线程睡眠一段时间,当时间到达后,线程不一定会立即执行,因为其他线程可能真该运行除非醒来线程具有更高的优先级
wait():会让线程暂停,进入等待状态 直到等待时间到 或者 被唤醒
override和overload区别
是多态性的具体体现
overload:一个类中的多态性体现
override: 父类和子类多态性体现
error和exception区别
error表示恢复起来不是不可能 但很困难 例如内存溢出
exception:表示设计或实现错误 程序能解决
常见的异常
浙公网安备 33010602011771号