赢时胜-外派工行面经

··
热河fen青
热河fen青
是奋青,亦是愤青

面试题
#

  1. 自我介绍 - 要求候选人简述自己的背景和经历。
    • 样例:尊敬的面试官,您好。我是XXX,一名拥有2年Java后端开发经验的工程师。最近在XX公司担任后端工程师,主导了多个关键项目的开发与优化。我对Java有深入理解,熟悉集合类、自定义注解及异常处理,并严格遵守阿里编码规范确保代码质量。熟练使用SSM和Spring Boot框架,曾用MyBatis-Plus提升开发效率。掌握了Redis的应用与优化,解决了缓存穿透、一致性问题,并通过Lua脚本实现限流。特别值得一提的是,在构建一个在线答题平台时,我利用Spring Boot整合了Redis缓存、通义AI智能服务、RxJava响应式编程以及SSE实时推送技术。我们团队采用了策略模式提高系统灵活性,封装AI服务简化初始化,优化Prompt保证数据格式化,同时引入Caffeine本地缓存减少重复计算,显著提升了系统性能。此外,我还领导了一次从Java到Go的技术迁移,大幅提高了开发效率并降低了维护成本。我对软件工程充满热情,持续追求技术水平和服务质量的提升。我相信我的背景和技术能力非常适合这个职位,期待能进一步讨论如何为贵公司带来价值。感谢您提供的机会,希望有幸加入贵公司。谢谢!
  2. 项目介绍 - 让候选人详细讲述最近参与的项目,特别是与AI答题系统相关的内容。
    • 继续看看课程,稍作完善
  3. 系统并发能力 - 询问智能答题系统的并发处理能力,特别是针对一万多用户的场景。
    • 信口胡说一下,因为我把它包装成了一个高校特供的项目,当然之前有这样的项目
  4. 数据处理流程 - 关于答题系统中数据处理的具体流程,尤其是AI判题时的数据存储和检索机制。
    • 不会
  5. 数据库索引 - 提问关于MySQL查询语句中使用IN关键字是否触发索引,以及联合索引的使用情况。
    • 需结合实际情况讨论,仍以字段是否有索引为标准
    • 索引下推
    • 最左匹配原则
  6. 事务隔离级别 - 考察候选人对数据库事务隔离级别的理解,特别是MySQL的默认隔离级别及其含义。
    • 四大隔离:读已提交、读未提交、可重复读、串行化
    • 默认隔离级别:可重复读
    • 含义:它确保在同一事务中多次读取同一数据集时,结果是一致的。这意味着在事务执行期间,其他事务无法修改这些数据。这个级别可以防止脏读和不可重复读,但可能出现幻读。
  7. MySQL执行计划 - 询问候选人如何查看和解读MySQL的执行计划,用于查询优化。
    • select_type, type, key, key_len, rows, Extra
  8. 查询类型效率 - 讨论MySQL查询类型(如index, range, ref)的效率排序。
    • 参考: ref > range > index
    • const, system:这些查询类型用于单行匹配,效率最高。
    • eq_ref:用于唯一索引的查询,每次只返回一行。
    • ref:用于非唯一索引的查询,可能返回多行。
    • range:用于范围查询,扫描索引的一部分。
    • index:扫描整个索引。
    • ALL:全表扫描,效率最低。
  9. 测试候选人对Java字符串处理的理解,包括字符串相等性的判断(小场景题,主要是==与equals的区别)
  10. String/StringBuilder/StringBuffer的区别。
  11. 类加载顺序 - 询问Java中类的静态变量、静态代码块、成员变量、普通代码块、构造方法、(静态方法)的加载顺序。
    • 静态变量和静态代码块 > 成员变量和普通代码块 > 构造方法 (> 静态方法)
  12. Java IO - 要求解释Java IO的不同模式,包括传统的阻塞IO、非阻塞IO及AIO,并提及项目中常用的字节流。
    • 问你这个的时候,实际上考官在问的是序列化和反序列化问题
    • 还有文件字节流
    • 还有上面的三种io