1.你觉得java好在哪里?
- 跨平台--JVM--一次编写多平台运行
- 垃圾回收--自动回收功能--提升开发效率
- 生态--第三方类库、框架、中间件
2.什么是多态?
多态是一种抽象行为,主要的作用是让程序员可以面对抽象编程而不是具体的实现类,这样代码的扩展性会更强。
3.java是值传递还是引用传递?
Java只有值传递,不论是基本类型还是引用类型
接口和抽象类有什么区别
接口:只能包含抽象方法(Java8之后可以设置default方法或者静态方法),成员变量只能说public static final类型。当like-a的情况下使用接口。
抽象类:可以包含成员变量和一般方法和抽象方法。主要是is-a。
java为什么不支持多继承?
主要是因为多继承会产生菱形继承问题。
什么是序列化?什么是反序列化?
序列化:将对象转化为可传输的字节序列格式,以便于存储和传输。 反序列化就是将字节序列转换为对象的过程。
什么是不可变类
String类型 好处是安全,这个对象不可能会被修改。 如何创建一个不可变类? 私有化变量,不要暴露set方法,即使有修改的方法也是返回一个新对象。
error和Exception的区别
Exception是程序正常运行过程中可以预料得意外情况,是应该被开发者捕获并且进行相应的处理。 Error是正常情况下不太可能出现的情况,绝大部分的Error都会导致程序处于不正常、不可恢复的状态。 注意点:
- 尽量不要捕获类似Exception这样的通用的异常,而应该捕获特定的异常。
- 不要吞了异常。(记得抛出)
- 不要延迟处理异常。
- 只在需要try-catch的时候做,尽可能范围小
- 不要再finally重return
重写和重载的区别
略
内部类什么用
封装、逻辑分组、提供更清晰的代码组织结构。