招银科技_Java_面经
一面线上,约半小时;线下于广州站华工酒店进行二面和HR面,各自约20来分钟。
upd:4.17收到资料评审
一面
-
依赖倒置原则
- 问题:请解释依赖倒置原则并举例说明
- 追问:高层模块与低层模块如何通过接口交互?
-
设计模式与开闭原则
- 问题:如何用设计模式解决开闭原则的矛盾?
- 追问:抽象工厂模式与普通工厂模式的区别?
-
Spring AOP
- 问题:介绍AOP的应用场景及注解
- 追问:@Before与@Around的区别?
- 追问:AOP的负面影响?
-
数据库优化
- 问题:索引的最左前缀匹配原则是什么?
- 问题:百亿级数据量的查询优化方案?
-
库存管理场景
- 问题:高并发抢购场景的数据库设计
- 追问:Redis故障时如何降级?
- 追问:Redis集群宕机(极端情况)的应对方案?你觉得数据全量加载到Redis合适吗?
-
反问
-
算法题(要求10分钟内完成)
问题描述
给定一个字符串
S
和一个基准词key
,需要判断字符串S
是否可以通过基准词key
按照特定规则扩展得到。扩展规则
-
将基准词
key
分割成两部分,例如key="cmb"
可以分割为c
和mb
。 -
以基准词为中心,按照分割后的两部分进行组合,生成新的字符串。例如:
c
+cmb
+mb
→ccmbmb
-
按照上述规律,可以生成一系列符合规则的字符串。
输入输出示例
- 输入:
S="cmbcmb", key="cmb"
输出:true
- 输入:
S="aacacttct", key="act"
输出:true
- 输入:
S="cmcmbccmmbmb", key="cmb"
输出:false
-
二面
-
自我介绍
-
实习
-
项目经历
- 问题:请讲一下做得比较好的项目
- 追问:你负责哪部分,体现专业能力的部分是什么?
-
告警规则引擎
- 问题:实现是对应什么业务需求?
- 追问:具体实现方式?
-
接口优化
- 问题:还有其他技术点吗?
- 追问:如何优化?
- 追问:数据汇总时如何保证线程安全?
- 追问:高并发下如何承载?
- 追问:SQL聚合什么意思?
- 追问:内存中处理会不会溢出?
- 追问:有并发访问吗?
-
权限模型
- 问题:还用到了什么技术?
- 追问:RBAC是什么?
- 追问:功能如何与角色权限关联?
- 追问:配置是什么意思?
-
-
数据库
- 问题:用过什么数据库?
- 追问:MySQL使用注意事项?
- 追问:有什么数据库实战经验?
- 追问:如何排查是长事务问题?
- 追问:如何避免死锁?
-
Spring事务
- 问题:了解Spring事务传播机制吗?
- 追问:一般用哪几个传播机制?
-
SQL注入防护
- 问题:SQL中#和$的区别?
-
反问:
HR面
-
个人背景与自我介绍
- 请做一个自我介绍。
- 你的ACM最好成绩是什么?当时A了几道题?
- 你本科期间的绩点排名如何?获得过奖学金吗?
-
-
竞赛与课外经历
- 你代表学校参加ACM比赛有多久了?为什么选择花这么多时间在ACM上?
- 除了ACM和实习,其他时间主要花在哪里?你有哪些兴趣爱好?
- 你们专业里打篮球的人多吗?
-
-
实习与求职经历
- 你的实习单位是自己找的吗?秋招期间的情况如何?
- 你现在有其他公司的机会吗?为什么选择应聘招商银行?
- 你对企业在招聘过程中的一些行为怎么看?
-
实习体验与能力提升
- 你在两家实习公司的体验如何?各自的优缺点是什么?
- 工作中使用的专业术语是从哪里学到的?实习时工作强度如何?
- 你没选择考研的原因是什么?你怎么看“学历不重要,能力更重要”这种观点?
-
个人与家庭情况
- 你的父母在什么地方、从事什么工作?
- 你是独生子女吗?现在有对象吗?
-
反问环节