网易互娱后端一面面经
面试题目
- 面向对象、封装继承多态。
- 抽象类、接口区别和使用。
- Java语言的优点。
- 提到了JVM,谈下对JVM的了解。
- 不同GC算法,不同垃圾回收器。
- 可达性分析。
- 使用AI情况,对AI的态度和思考。
参考解析
- 封装、继承、多态:封装隐藏内部实现,通过访问控制符保护数据;继承体现了is-a关系,实现代码复用;多态即同一接口不同实现,主要通过重载和重写实现,增强代码扩展性。
- 抽象类与接口:抽象类偏向于“is-a”关系,用于定义模板,支持成员变量和非抽象方法;接口偏向于“can-do”关系,支持多实现,强调功能约束。
- JVM与GC:JVM是Java运行环境,包含内存模型(堆、栈、方法区等)。GC算法包括标记-清除、复制、标记-整理。常用回收器有CMS、G1、ZGC等,根据应用场景(吞吐量优先或延迟优先)进行选择。
- 可达性分析:作为垃圾回收的基础,从GC Roots对象出发,通过引用链搜索,如果一个对象不可达,则视为可回收。常见的GC Roots包括虚拟机栈中引用的对象、静态属性引用对象等。
- AI态度:回答应体现客观性,强调AI作为辅助生产力工具,能提高编码和调试效率,但需具备批判性思维,不可盲目依赖生成的代码,同时应关注隐私与伦理问题。