两年社招后端开发面经
- 前言
笔者在一家国有银行的科技部门干了两年 做的主要是线上消费贷款的后台部分
心想着干了差不多两年 也是时候出来看看机会了
大概是从年初开始准备的吧
准备思路就是三块:0 简历 1 技术(主要是看书)2 项目 3 leetcode(不过社招考察的不多其实)
简历
简历首先决定了你有没有面试机会 其次还决定了面试时面试官会怎么提问你 我觉得多花些时间在简历上边还是挺重要的,一开始我也是很嫌弃认真写简历,不过后面投多几家石沉大海 你就会知道简历需要好好写了 不过不用指望自己能憋两三天就把简历写出来 可以边面试边改善 这样比较有感觉 也容易技术
因为我是java系,看的书如下:深入理解java虚拟机、redis设计与实现、从paxos到zookeeper、apache kafka实战、java并发编程的艺术、mysql技术内幕。看的时候其实看得也挺快的 主要就是泛泛的看一遍 感觉特别重要的才会比较认真看 也可以先上面对着这几个方面留意一下比较常见的面试题,然后再来有针对性的看书会好一些项目
项目的话 其实就两方面,一方面是你简历上写的东西 对你简历上写的东西要特别熟悉 不然很容易被问穿 这就会有些尴尬 当然如果做的项目确实比较简单 也应该适当包装一下(比如无中生有,不然有时简历关都过不了 不过对于无中生有的部分也需要比较熟悉就是了) 然后工作一两年的建议就别写精通XXX了 我一般就是了解、熟悉;好像跑偏了,除了简历上的东西,另一方面会问你一些有关你们系统的开放性问题,这就需要你平时对你们系统有一些了解,比如你们生产有多少台机器、数据库怎样部署的之类的,这些就需要平时积累 如果平时没积累,就多找熟悉的同事问问(这里要谢谢欢哥,我的面试经理)leetcode
我反正直接躺平 一开始还会每天刷一道medium 后面直接两三天挑一道easy 就保持手感 因为没有面字节 所以以前的老本倒也够用了
接下里就是具体的面经啦 这里按照面试的时间顺序排一下
涂鸦一面
- 1 项目并发控制 updatepdate 0 乐观锁
- 2 简历ibatis
- 3 redis哨兵心跳 事务 pipeline
- 4 数据库全表查询 select * 高性能mysql
- 5 jvm 栈 垃圾回收 碎片 stop the world
- 6 内存布局 enum java1.6 1.8
- 7 设计文档输出
- 8 学习kafka
- 9 锁升级 synchronized
- 10 服务如何开发给第三方
- 11 接口如何审核 控制第三方调用
涂鸦二面
- 聊聊最近一个项目,遇到哪些业务上的难点、技术上的难点,怎么解决的
- Redis分布式锁怎么实现的
- Weblogic平时有使用到吗 对tomcat的原理了解吗
- 对分布式了解吗 分布式需要解决哪些问题呢
- 最近这两年最大的技术进步是哪些呢 讲讲oracle索引 什么时候会出现死锁呢
- 对未来的规划是怎么样的呢
- 有什么想问我的吗
涂鸦hr面
- 对公司了解吗 事后有去了解过吗
- 为什么想离开现在的公司
- 想去哪些类型的公司 为什么 有什么期望
- 在工作中遇到最大的难题 怎么解决的
- 作为技术 最讨厌什么
- 为什么不想去bat 有和同事了解过吗
- 对于这个岗位进来要做的东西 了解吗
- 现在薪资多少 期望薪资多少
涂鸦一面的面试官聊得久一些 二面就比较快 hr面感觉和hr不是很对口 后面就卒了 面试反馈挺快的 一般今天面完 第二天就反馈了
akulaku
一面
- Redis为什么不用hashmap
- 等额本息等额本金的区别
- 订单库存服务不一致
- 主键递增
- 工作流回滚
- volatile 原子变量
二面
- 准入 攻破怎么办
- redis数据结构 hashmap使用
- jvm内存布局
- 什么时候回收
hr面
额hr问题忘了 这家因为后边给的工资比较少 所以就没去
平安一面
- 你在建行做的是什么 为什么想要换工作 对新的工作有什么期待
- 了解过springboot吗
- 了解springcloud 它的各个组件是怎么样的
- 了解mybatis吗 它的分页组件是怎么实现的
- 你用过多线程吗 知道线程池的原理吗
- 了解hive hbase吗
- 说出自己的三个缺点 三个优点
- 最近比较有技术含量的一个项目是什么
- 一般一个需求下来你是怎么做的
- Redis有哪几种数据结构
- Redis数据结构的选取?有什么原则吗
- 有生产上堆栈分析的经验吗
- 生产上有出现线程堵塞的经验吗
平安二面
- 讲讲你在建行做的什么
- 讲讲你们的流程
- 你做的有什么难点吗 你负责的东西是什么呢
- 你现在还是在做这个吗
- 你们怎么解决客户额度的问题呢
- 讲讲你项目里用到的技术
- 你们数据库数据量大吗
- 几千万的数据量会有性能问题吗 怎么解决大表关联
- 讲讲多线程
- 用过微服务吗 你们服务器扛得住吗
hr面
也就是问一些常规问题 忘记记录了 这家也谈完薪资了 应该会去这一家
amber 一面
- 讲讲layer2的实现方式
- 讲讲arbitrum
- 讲讲助记词是怎么生成私钥的
- 怎么把一条链的提现和充值接入钱包
- 用什么语言写过dapp吗
- 以太坊地址有大小写区分吗
- 波场和以太坊有什么区别 为什么波场比较快
- Btc和以太坊两条链有什么区别
- 搭建过以太坊节点吗
- 如果有很多个账户 怎么监听账户的余额变动了
- Redis机构树在数据库怎么存的 为什么要这么设计
- 在redis怎么存的 在数据库如何优化
- 给一个字符串 写出他的全排列
amber hr面
- 了解我们公司是做什么的吗
- 年终考核和绩效挂钩吗 拿了什么 为什么
- 为什么想要离开现在的公司
- 为什么对区块链这么有信仰
- 对未来的规划是什么
- 可以接受先做开发后面再接触钱包相关的吗
- 对加班的态度怎样
- 现在的薪资及期望薪资
本来一开始我是最想去这家公司的 但是他们要求有过钱包的设计经验 所以就卒了 不过后面也觉得无所谓了。。。
波场一面
- 讲讲你对区块链的了解
- 讲讲全节点 轻节点
- 如果要你设计钱包 你觉得有什么侧重点
- 讲讲concurrenthashmap如何实现并发 扩容呢
- 用过消息队列吗 如何防止消息丢失
- 做一道leetcode题
- 有什么要问我的吗
这一家同上。。。一面卒。
招联一面
- 为什么要离职
- 期望薪资
- 讲讲比较有代表性的项目
- 授信数据从哪里来的
- 你们贷款流程设计时有什么原则
- 征信挂了怎么办 怎么优化(一天缓存)
- 为什么要迁移表 迁移之后数据库压力就解决了吗
- Redis 数据结构 应用场景 怎么解决并发访问 怎么解决数据一致性 用来缓存什么东西
- Kafka消息积压怎么处理
- 了解springboot吗 了解微服务吗
- 了解分布式事务如何解决吗(二阶段提交 三阶段提交)
- myisam和innodb的区别
- b+树索引存储位置 覆盖索引 什么时候走索引比不走索引慢
- 什么场景下需要用到分布式
- 不断fullgc怎么处理
- Jvm内存分布
- 有什么想问我的吗
招联很奇怪 我投了差不多一周 某天周六突然打电话问我能不能面试 然后就当成面了 聊了有四十多分钟 后面就没有音讯了 感觉是刷kpi吧
微众一面
- 讲讲几个项目 你们系统的作用
- 遇到过你认为的难题
- 开户阶段就只做了开户吗
- 怎么协调开户和额度扣减 怎么解决
- 分布式事务的解决方式
- 避免出现一笔申请多次推送
- 工作流出错后不能重复提交 没办法将推送放到后面吗
- Java线程池的参数 核心线程最大线程 和tomcat线程池的区别
- Bean的几种初始化方式 默认方式
- mybatis怎么从一个mapper组装成一个类
- Aop怎么实现的 有aop不生效的情况吗(独立事务不对)
- 轮起怎么避免对外服务失败
- Zk的作用 谁调用zk
- oracle和mysql的区别
- Mysql的索引 主键索引和非主键索引的区别
- 授信编号如何生成的
- 系统之间的调用通过消息队列吗
- 你们基于tcp吗 http吗 用的什么http框架
- 怎么使用多线程的
- 产品场景很多,针对代码里面大量的ifelse 考虑过怎么优化
- 单例模式使用过吗 有哪几种初始化方式
- 什么时候索引失效 为什么这种情况会失效
- 单索引和联合索引的区别 如何决定采用顺序
- 查询一定时间段内的流水 如何建立索引
- 平时有了解什么新技术吗
- 对于新环境预计多久能上手
- 有什么要问我的吗
- 你们加班程度怎样 对于加班怎么看
- 面试情况 如何考虑
- 对于微众的了解
一面聊得比较久 差不多70分钟 过了一周了 才跟我说他们领导会联系我二面。。。反正现在还没开始 如果有后续我可以补上来。
微众二面
- 简单自我介绍一下
- 讲讲你负责的东西
- 授信是怎么计算额度的
- 你们就负责转发请求吗?
- 调用第三方接口怎么处理报错的 有没有什么优化方法(异步、多线程)java有没有什么自带的获取结果的方法(future)异步调用如果超时了怎么办(不会了 timer)
- 你们系统tps多少 每天调用开户次数多少 有多少成功开出来呢
- java object有哪些方法(hashcode equals notify wait)
- 你们的开发框架是怎么样的
- Hashcode 和 equals有哪些区别呢 什么场景下使用呢
- equals和compareto有什么区别
- 重写一个对象的hashcode和equals怎么权衡 hashcode一定要重写吗
- Hashmap的put操作是怎么做的 哈希操作是如何进行的呢
- 单例模式有哪几种写法(非懒加载、懒加载)
- 懒加载怎么避免并发问题呢(双重确认加锁)
- 第一层确认的作用 第二层确认的作用
- Mybatis什么情况下会sql注入呢
- 你了解sql注入吗 能不能将一个具体的例子
- 你们用的是什么数据库 了解mysql吗
- Mysql的主键索引非主键索引什么区别
- 什么时候非主键索引不需要回表呢(覆盖索引的时候)
- 非主键索引什么时候失效
- 非主键索引A B C,如果A范围查找,B还上索引吗(不会)
- 你的专业是统计学 为什么想要做开发呢 计算机相关的知识是怎么学的
- 平时有哪些兴趣爱好
- 对技术了解如何
- 现在的面试情况
- 为什么想要跳槽
- 有什么想要问我的
二面挂了 感觉在技术上还差了一丢丢 需要再积累一段时间
招银技术面
- Stringbuffer Stringbuilder的区别
- Mybatis一级缓存二级缓存的区别
- springmvc常用的注解
- Mysql两个引擎的区别
- 有jvm调优经验吗 讲讲java内存模型
- 了解微服务吗 讲讲你对微服务的理解
- 了解springcloud吗 讲讲你对spirngcloud几个组件的理解
- 讲讲简单工厂模式和抽象工厂模式
- 讲讲认为比较重要的项目
- 主要流程是怎么样子的
- 说说你们系统的作用 整个交易路线是怎么样子
- 第三方接口报错怎么办
- 如果增加了很多第三方接口 怎么保证服务时间不增加 又保证用户体验 可以从技术和架构的角度讲讲
- 你们怎么协同其他开发中心的进度的?一个需求拿来怎么确保上线时间
- 觉得最重要的文档是什么?
- 怎么确保接口文档正确高效
- 你之前是做数据分析的 为什么现在做开发了
- 你本科是统计学 那计算机基础有学习吗
- 现在的offer情况
周日做了在线笔试题。。。后面就联系我在线面试 是三个有些年纪的面试官 因为他们问的ssm相关的 我没咋准备,不对 是根本没准备 所以答得不好 卒
腾讯一面
- 第三方调起你们的服务是怎么认证的(appkey 证书)
- 你能讲讲证书是什么吗
- 额度数据从哪里来的 渠道怎么区分
- Redis集群怎么部署的 一条写入什么时候可以当成提交了
- 全部从节点都确认会有性能问题 怎么优化
- 了解raft算法吗 它是怎么达到一致的
- 灰度切换怎么做
- 了解oracle怎么同步数据到redis吗
- 了解java的哪些字符串对象 讲讲hashmap
- springboot的启动流程
- Mybatis的延迟加载 一二级缓存 $&[的区别
- 了解docker吗 docker创建镜像什么命令
- 回滚机制 推送的时候如果涉及多个渠道怎么办呢
- 项目里面的难点 你负责的内容
- 数据迁移怎么做的
一面的时候我是奔溃的 感觉腾讯问得会比较深一些 碰巧ssm、zk是我的软肋 虽然写在简历上 但是并不熟 加上之前的面试官都没问过我。。。 我进行到后面都想跟面试官说要不今天到这 但是后面居然过了 一面一个小时
腾讯二面
- 做一道链表合并的题 能不能就地算法完成
- Linux用得比较多的命令
- Grep怎么高亮
- linux去重命令
- 怎么查出哪个进程占用了8080端口 部署在哪个路径下
- 大学专业 为什么做开发 有学过计算机相关的知识吗
- 了解进程 线程 协程吗
- 内核态、用户态的区别
- 了解常用的加密算法吗
- 你们项目中有用到加密吗
- MD5算法是什么加密算法 有公私钥吗
- 随心贷有什么项目难度
- 你们银行的服务是怎么控制调用的
二面聊得比较简单 差不多40分钟 感觉面试官就是走个流程吧 二面卒
蚂蚁一面
- 简单自我介绍一下以及讲讲你擅长的技术
- 额度恢复扣减是怎么实现的 有了解吗
- 标准贷款和额度贷款有什么区别
- 贷款合约表里面有什么字段
- 快贷里面有多个产品 那是怎么区分的 会不会出现一笔贷款对应多个贷款的情况
- 第三方场景的准入是怎么做的 他们负责还是你们负责
- Redis你们用来做什么呢
- Redis为什么会比mysql快 从几个角度分析
- Redis上的数据是拿来缓存呢还是就只放在redis上
- 如何保证redis和数据库的一致性问题
- 如果redis上三分钟有效期的临时数据在申请过程中过期了怎么办(看门狗)
- 你们项目中有用到多线程吗
- 你们有多少台机器 每天的访问量怎么样
- 如果有很多并发的请求进来 可以怎么利用多线程优化(异步)如果线程队列满了呢?( 消息队列)
蚂蚁的面试官感觉挺有水平的 会问你擅长哪些技术 聊了差不多四十分钟 二十分钟项目 二十分钟技术 你答不上来也会引导你 是我这次面试体验里边最好的了 一面应该是过了 看面试官什么时候联系我二面 有后续的话我可以再更新
蚂蚁二面(十八分钟)
全程问项目。。。
不出意料 挂了 经验尚浅 同志仍需努力!
总结,最后再随便唠叨几点
1 我是裸辞的 就是提了离职才开始找工作的 对于那些很讨厌自己一个人待在家里的人非常不建议(比如我)但是其实也可以尝试一下 嘿嘿 毕竟也算比较新奇的体验 反正就是要考虑清楚啦
2 面试的时候最好从难度简单的开始 一开始就大厂 容易把自己搞自闭 而且浪费机会 就是循序渐进
3 面试后最好做一下记录 至少要复盘一下自己答得不好得 去弄明白 很大概率下个面试官还问。。。
4 面试其实也是个展现自我的过程 就是和面试官的沟通和交流也挺重要的 答不上来也没啥 但要让面试官知道你比较努力。。。(这一点面几家就会有感觉了)
5 社招和校招还是不太一样的 社招背景契合会更容易进一些 背景不契合,比如区块链那些都是一面卒 自动驾驶直接简历关都没过。。。 对自己的职业规划要有点B数 虽然也不一定会一直当打工人
6 就是要广撒网 这样才会心态平和 不会患得患失 如果很自闭 就休息休息 或者找朋友倾诉倾诉 然后继续战斗!
7 关于面经 其实我是在准备阶段 就是几个月前看了几篇 开始面试后一篇都没看过。。。这个仁者见仁 智者见智 不过我的面经还是可以看一看的 嘿嘿(觉得自己好有文采.jpg
最后的最后 祝大家可以拿到自己心仪的offer!!!
7.7更新 大家有问题可以评论区留言 我一天会看一两次 有可能回答的我就会尽量解答
7.10更新 更新了微众二面和蚂蚁二面 最终决定去平安啦 完结撒花!后续就不怎么会看帖子啦