Java基础面试题

83 阅读2分钟

1.你觉得java好在哪里?

  • 跨平台--JVM--一次编写多平台运行
  • 垃圾回收--自动回收功能--提升开发效率
  • 生态--第三方类库、框架、中间件

2.什么是多态?

多态是一种抽象行为,主要的作用是让程序员可以面对抽象编程而不是具体的实现类,这样代码的扩展性会更强。

3.java是值传递还是引用传递?

Java只有值传递,不论是基本类型还是引用类型

接口和抽象类有什么区别

接口:只能包含抽象方法(Java8之后可以设置default方法或者静态方法),成员变量只能说public static final类型。当like-a的情况下使用接口。

抽象类:可以包含成员变量和一般方法和抽象方法。主要是is-a。

java为什么不支持多继承?

主要是因为多继承会产生菱形继承问题。

什么是序列化?什么是反序列化?

序列化:将对象转化为可传输的字节序列格式,以便于存储和传输。 反序列化就是将字节序列转换为对象的过程。

什么是不可变类

String类型 好处是安全,这个对象不可能会被修改。 如何创建一个不可变类? 私有化变量,不要暴露set方法,即使有修改的方法也是返回一个新对象。

error和Exception的区别

Exception是程序正常运行过程中可以预料得意外情况,是应该被开发者捕获并且进行相应的处理。 Error是正常情况下不太可能出现的情况,绝大部分的Error都会导致程序处于不正常、不可恢复的状态。 注意点:

  1. 尽量不要捕获类似Exception这样的通用的异常,而应该捕获特定的异常。
  2. 不要吞了异常。(记得抛出)
  3. 不要延迟处理异常。
  4. 只在需要try-catch的时候做,尽可能范围小
  5. 不要再finally重return

重写和重载的区别

内部类什么用

封装、逻辑分组、提供更清晰的代码组织结构。