java后端开发面经-多个公司
总体描述:从年前开始面试,先后面了,兴业数金、苏州银行、思科、之江实验室、新华三、招银网络科技、同花顺、招银理财、人寿研发中心、zoom、字节等公司;目前已oc的有兴业数金、之江实验室、新华三、招银网络科技、zoom;还在流程中的招银理财到终面、人寿研发中心到终面、字节到二面、蚂蚁做完线上笔试还没有消息;城市主要有杭州、合肥;面经主要以各个公司的面试流程为主,问的问题很多已经记不清了,只能大概回忆下,最终决定去zoom
1. 兴业数金
笔试加两轮技术面,总体难度一般
笔试是选择加编程,编程题应该是leetcode easy难度
技术一面:基础加上项目,回忆起来的有问到mysql这一块,结合项目中的问题如何提高并发,如何索引优化,看慢查询等,面试官有问到一个问题当时不知道,如何强制走索引,后面查了一下,force index可以强制走索引,另外问了下是否用到分区技术;然后讨论了下项目协调过程遇到沟通协调问题如何解决的等
技术二面:大概就七八分钟,简单自我介绍,问了下大体情况,然后反问面试官一些问题就结束了
之后就是等了一周多,发了内审和体检,银行流程比较慢
2. 苏州银行
只进行了一轮面试,后面要到现场面,就没再过去,面试前有一轮笔试,笔试记不清是什么了,不难,也是技术方面的笔试,一开始我还以为会考行测;
技术一面是一对多,对面不同人会发问,有问技术方面的,也有业务方面的,总体不会太深入技术
3.思科合肥
思科合肥是比较想去的一个公司,年前面试准备不足,没有面过
没有笔试,找了一个老哥内推,听说就差几个人就招满了,就赶紧内推了,然后面试也只有一轮,本来是三个面试官,后来只来了两个
面试过程:一个年轻的技术面试官会问一些八股文和基础以及项目,先让介绍了自己的项目,以及项目中的难点如何解决;然后问了有没有jvm调优及线程池调优经验,又问到kafka消息丢失问题,这个提醒下大家,首先和面试官交流,要明白他想问什么,比如kafka消息丢失,那是生产者,消费者还是broker丢失,为什么丢失等,先明确问题的原因再去作答,如果不知道就算了,不可张口就来;后面又问了怎么写一个springboot starter等问题,总的来说,年轻小哥问的问题有一些八股文,但不多,更多深入项目细节,如果提前没有考虑这么多,很可能答不出来;
然后是一个大佬开始发问,大佬很和蔼可亲,但一上来就出了一个final修饰类,然后属性是否可变的问题,当时没答好,然后问了是否有安全方面的经验,我说了一些对称和非对称加密的经验,面试官应该更想有一些安全漏洞方面的经验,然后问了是否了解序列化漏洞,平时泛型是怎么用的等等
很多未答出来,加上刚开始面试比较紧张,整个面试自己处于热锅上得蚂蚁,比较煎熬,最终以失败告终,整体来说,外企面试氛围还比较好,会深入项目细节实现,然后挖掘你的潜力和擅长点,不会刻意问你不会的东西,大家如果想去这些外企,除了基础打好之前,也关注下自己面试岗位的要求,比如面思科视频会议这种岗位,最好懂一些安全知识,安全漏洞方面的东西,后面zoom的面经我会再一次印证这个问题
4. 新华三
一共4面,技术两面,一面hr,一面研发总监,后两面基本就是聊天谈薪资,主要在技术一面,整体难度一般
技术一面:电话面试,考察基础和广度,基本都会问,比如项目以及解决的难点,synchronize锁、并发、mysql、等等基础知识,当时问了一个git多人开发冲突的问题,当时没反应过来,时间大概在半个小时的样子
技术二面:需要到现场,是团队主管面,先做一套笔试题,笔试题比较老了,选择加编程;然后主管聊一聊项目的部署架构,技术的方向等等,比较轻松的对话
5.之江实验室
总共就一面,hr面就是谈薪资了,一面要自己做ppt展示自己的项目经历
面试过程:自我介绍、PPT展示,我做的PPT比较简单,不到10分钟就说完了,给的时间好像是15分钟,然后对面3达到4个人发问,先是年轻点的小伙子,问了一些技术问题;然后是大佬级别的,问了下程序中异常是怎么处理的,问了下top K问题用堆解决,堆排序实现原理,还有一些记不清了,这个过程30到40分钟的样子
6.招银网络科技
笔试+两轮技术+hr面
笔试选择题加编程题,编程题leetcode easy难度,一般大家应该都能做出来
技术一面:考察项目以及基础,具体记不清了,基本就是选择一个自己觉得有难点的项目进行介绍,讲一下如何解决难点;然后面试官会对感兴趣的技术或者业务进行提问,然后在线编程,出了leetcod中等难度的题目;然后写sql
技术二面:某个领域的负责人,还是聊了聊项目,更多的是架构方面的聊,也问了问团队协作方面的问题,总体较为轻松
hr面:聊了半个小时,hr竟然也要介绍项目,问了下薪资方面问题以及对招银的了解
总结:总体难度一般,虽然面试技术难度比不上互联网,但在银行中可以看的出,算是银行中技术较好,面试难度较大的了
7. 人寿研发中心
一共三面,筛选 + 部门面 + 终面,网上了解了一下,有的人好像没有筛选,直接部门面和终面
初面筛选:大概30多分钟,从项目及项目难点,然后问了下kafka的知识,问了下redis的事务,问了怎么判定可以被回收(引用计数和可达性分析)、垃圾回收算法(标记复制、标记清除、标记整理)等
部门面:过了有一周左右才通知部门面,还以为挂了,部门面一对多,对面大概有5个人,问了redis实现延时队列的原理,为什么不用消息中间件实现,现在的职级和绩效,为什么来杭州等
终面:还未进行,一个月进行一次,这效率也没谁了
8. zoom
几乎是和人寿研发中心一块投的,简历筛选了大概一周才通知面试,一面后等了三天通知二面,二面后等了三天通知终面
一面:一对三,对面三个人轮流发问,这里只记得当时回答的不太好的问题和最后一个面试官小姐姐的问题了,问了下https在对称加密和非对称加密方面的应用,签名本身怎么保证公钥是真的?(对公钥本身又作签名,引入CA第三方验证);之后又问到sql怎么样,我平时不怎么写关联查询,用的orm框架,关联在应用层做的,就如实说了,面试官也没再让写,但后面又问到既然用到mybatis,说一下其实现原理(就是动态代理,接口代理到xml的过程);然后一个小哥哥要问我基础,线程安全的list?不会,线程安全的queue?不会。(这里说下自己还是掌握的不够全面,只知道线程安全的map);然后聊到并发和锁,聊到CAS,如何实现CAS?这里回答的也不好;最后一个漂亮的小姐姐问了两个较为常规的问题,线程池的核心参数,拒接策略有哪些,是否调优过线程池参数。
二面:还是一对三,问题记不清了,只记得回答的不太好的问题,说到netty后问了nio的原理,说到nio的本质等,谈到多路复用,阻塞非阻塞等问题;项目中的异步框架实现的原理等,这里自己讲的不是很好;然后是设计模式用到哪些,说下对开闭原则的理解;有没有安全方面的经验,问到前段时间log4j漏洞的原理,这里没有答上来;问到项目中既然涉及到订单,是如何清算的,如果有问题,怎么进行对账?这里也没有深入了解过。
三面:总经理面,没有聊技术,聊了聊家常,对zoom的了解,对前面面试的体验,自己反问了两个问题
hr面:聊了聊家常,薪资及期望,介绍了zoom的发展及前景
总结:面试较难,很多问题没有回答出来,但面试体验很好,面试可能更看重候选人的潜力和技术的深度
9.招银理财
一共四面,第四面还未进行
技术一面:一对多,问各种技术问题,业务问题,总体还是比较轻松的氛围,面试官也比较好
技术二面:一对二,还是一些技术问题,更多的是对业务方面的理解和技术上实现的原理
三面:部门领导,聊天形式
四面:hr及部门负责人,常规的一些问题
10.字节
技术一面:介绍项目及难点,简历中有写到redis延时队列,问到底层原理,别的还有什么方式实现延时队列;分布式锁如何实现的,说到分布式锁,A线程加锁如何保证不被B线程释放,加锁的时候绑定线程ID,那不同机器上得线程ID如何保证不重复?通过机器IP + 线程ID来保证唯一性;post和get的区别,get一定是幂等的吗?post的请求如何做幂等的?这里我是mysql里唯一索引做的;在订单号是后端生成的情况下,如何避免重复下单?这里回答的不太好
然后是做了一道还比较常见的动态规划算法题
技术二面:介绍项目,问到项目中的业务开展,业务量,用没用到分库分表,答分表,分表应该注意什么,怎么避免数据倾斜的?然后问项目中的发奖如何避免超发,应该是和超卖一个道理。项目中对账怎么做的?
技术问题大概问了25分钟,很多电商中的场景我项目中并未用到,没用就照实说没用到了,然后开始做题