面试鸭Java后端面试题, 杭州某医疗公司 Java 面经
面试鸭Java后端面试题, 杭州某医疗公司 Java 面经
QA
Step 1
Q:: Java的面向对象编程(OOP)概念有哪些?请详细解释每个概念。
A:: Java的面向对象编程(OOP)概念主要包括四个:封装、继承、多态和抽象。
1.
封装:封装是将数据(属性)和操作(方法)绑定在一起,并对数据进行保护,防止外部的直接访问。通过getter和setter方法来控制对属性的访问。
2.
继承:继承是指一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用。子类可以扩展父类的功能或覆盖父类的方法。
3.
多态:多态是指相同的方法在不同的对象上可以有不同的表现形式。多态可以通过方法重载和方法重写来实现。
4.
抽象:抽象是指将共性的属性和方法抽取出来,定义一个抽象类或接口,而不具体实现这些方法。具体的子类或实现类会实现这些抽象方法。
Step 2
Q:: 请解释Java中的垃圾回收机制是如何工作的。
A:: Java中的垃圾回收机制(Garbage Collection,
GC)是自动管理内存的一种机制。它通过追踪和清除不再使用的对象来释放内存。Java的GC主要通过以下几个步骤工作:
1.
标记阶段:GC会遍历所有的引用链,标记所有可达的对象。
2.
清除阶段:GC会清除未被标记的对象,从而释放这些对象占用的内存。
3.
压缩阶段(可选):有些GC会在清除对象后进行内存压缩,将存活的对象移动到连续的内存空间中,以减少内存碎片。
Step 3
Q:: Spring框架中的依赖注入(Dependency Injection,
DI)是什么?有哪些方式实现依赖注入?
A:: 依赖注入(Dependency Injection, DI)是Spring框架中用于实现控制反转(Inversion of Control,
IoC)的一种设计模式。DI使得对象与对象之间的依赖关系通过外部配置来实现,而不是由对象自身创建或管理。
在Spring框架中,实现依赖注入的方式有三种:
1.
构造器注入:通过构造器参数来注入依赖对象。
2.
Setter方法注入:通过Setter方法来注入依赖对象。
3.
字段注入(Field Injection):通过注解直接在字段上注入依赖对象。