pursue wind pursue wind
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
  • 技术面试题篇

  • 面试准备篇

  • 技术面试题自测篇

  • 练级攻略篇

  • 工作篇

  • 面经篇

    • 2021 虾皮,网易云,京东,阿里校招面经!附参考答案
    • 2022 字节跳动 Java 后端实习面经(附参考答案)
    • 2022 四年经验高级 Java 工程师面经
      • 行云集团-高级 Java 工程师岗位
        • 一面(60min)
      • 二面 (60min)
    • 2022 步步高 Java 后端 6 面面经
    • 2022 滴滴,网易,Shopee,B站,携程,阿里,字节社招面经总结!
    • 2022 金蝶 Java 后三面面经(已OC)
    • 2022美团、华为、字节 Offer 面经(附参考答案)
    • 2022腾讯云Java工程师一面 + 被捞一面 + 二面面经
    • 2年经验,2021 阿里、头条、美团,滴滴,京东面经
    • 4年经验,面试Bigo挂在了第三轮
    • 五面阿里,终获 offer!
    • 从考研失败到收获到自己满意的Offer
    • 双非本科、0实习、0比赛项目经历。3个月上岸百度
  • 笑傲Java面试

  • LeetCode

  • 面试
  • 面经篇
pursuewind
2020-11-22
目录

2022 四年经验高级 Java 工程师面经

一位球友的 2022 年跳槽面试经历,高级 Java 工程师岗位,希望对你有帮助。

​

下面是正文。

由于没怎么准备,先去市场看看现在的面试行情,大部分知识都是以前积累的

# 行云集团-高级 Java 工程师岗位

薪资范围: 25k~50k ,3~5年经验 Java 高级开发工程师

# 一面(60min)

  1. 介绍项目(20min):面试官往死里抠你的职责,项目上下游,项目架构,你如何做的服务拆分?
  2. Spring Bean 的生命周期?这部分我主要根据自己写的一个小框架回答了,因为这个小框架拦截了 BeanPostProcessor ,所以在 Spring 容器在启动的时候会自动检测是否有类实现该接口,在调用类的构造方法之前,会执行 postProcessBeforeInitialization 调用构造方法之后执行 postProcessAfterInitialization,主要这么回答的, 巴拉巴拉讲了快 10 分钟。
  3. Spring 事务的实现原理?
  4. MySQL 事务隔离级别?
  5. MySQL 如何实现事务的?主要 undolog 日志是怎么工作的, 拿事务 id 回答
  6. 当前读与快照读是什么?用缓存和数据库举例子,当前读相当于直接读库,快照度相当于直接读缓存。RC 级别在执行 SQL 前后生成快照。RR 级别在开启事务生成全局快照后续的查询操作只读快照部分,这里还可以扩展,唯一索引其实是当前读。
  7. 为什么 MySQL 表删除了一堆数据,但是文件大小不变?MySQL 对于删除的数据,仅仅只是删除占位,被删除的数据仅缺失了之前数据页的占位。物理删除会造成数据空洞。
  8. MySQL 如何恢复到误删前的状态?
  9. 你在日常工作中对 SQL 进行了什么优化?巴拉巴拉,深度分页的优化、索引的优化、建立合适的联合索引,利用覆盖索引或者索引下推这块牵扯的太多了,就稍微答了一些,这块还可以扩展,例如:针对索引区分度建立联合索引,尽量保持区分度高的在最左。联合查询的时候,关联字段都需要加上索引。有排序场景,尽量不查询 text,Blog 字段,合理利用内存排序,避免 MySQL 的文件排序 这里扩展一下就是,MySQL 有一个叫做 sort_buffer,对这里优化才是关键。

部分问题参考答案 :

  • Spring常见问题总结 (opens new window)
  • 【技术干货】Spring事务原理一探 (opens new window)
  • MySQL知识点&面试题总结 (opens new window)
  • MySQL三大日志(binlog、redo log和undo log)详解 (opens new window)
  • 那些年我们一起优化的SQL - 有赞技术团队 (opens new window)

# 二面 (60min)

  1. 自我介绍
  2. 看你熟悉 DDD 架构模式,介绍一下?大致介绍一下领域驱动设计,概念,聚合,聚合根,领域,值对象等等
  3. 你认为在你做的项目场景中属于哪一个域?上下游分别会以什么状态进入你当前项目的领域?问的太抽象了,从要从领域职责进行划分来回答,什么职责对应什么域,上游域对象存在的状态当前领域对象职责,太抽象了问题。
  4. 你认为 DDD 的优势和劣势?主要从 MVC 架构模式对比,从面向对象角度出发,贫血模型与充血模型的优缺点。MVC 更容易理解,DDD 更难理解,学习成本较高。
  5. 看你项目中做了灰度发布?介绍一下你是怎么做的?这个要从实际项目场景出发了,灰度策略,灰度的范围、粒度,哪个层面实现的。
  6. 看你在灰度的时候还做了数据库双向同步?介绍一下?因为新功能和老功能都要用的啊, 并且 2 套系统都是要用的,数据如果不一致,就会造成问题。基于阿里云 DTS 做的。
  7. 你说 DTS 从 RocketMQ 变为了 Kafka, 你说说 2 个消息队列的区别?这块可能答的不太行,RocketMQ 本质就是基于 Kafka 来做的,但是实时性会比 Kafka 好,并且支持事务性消息,但是 Kafka 也可以有特殊的方法支持事务消息。
  8. Kafka 的优势在哪里?实现原理是什么?批消息处理,零拷贝技术,网络接口层-用户态-内核态,缩短拷贝链路。
  9. 双向数据同步会涉及 BinLog 监听,可能造成消息来回弹,你怎么处理的?幂等,数据标记。
  10. 你在项目中碰到过的问题?有什么亮点?服务器线程打满,负载均衡策略。

本次面经基础基本考察的不多,项目扣的很细,项目中的问题点也会仔细扣。

部分问题参考答案 :

  • 一文带你学习DDD (opens new window)
  • 《Java 面试指北》 - 技术面试题篇 (opens new window)
  • Kafka、RabbitMQ、RocketMQ 之间的区别是什么 ? (opens new window)
Last Updated: 2023/01/30, 11:01:00
2022 字节跳动 Java 后端实习面经(附参考答案)
2022 步步高 Java 后端 6 面面经

← 2022 字节跳动 Java 后端实习面经(附参考答案) 2022 步步高 Java 后端 6 面面经→

Theme by Vdoing | Copyright © 2019-2023 pursue-wind | 粤ICP备2022093130号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
  • 飙升榜
  • 新歌榜
  • 云音乐民谣榜
  • 美国Billboard榜
  • UK排行榜周榜
  • 网络DJ