一、笔试(100+100+200)
第一题是数据流中的中位数
第二题是某通信公司,新员工编号生成问题
第三题是面试官调度问题
总结:运气不好,没有抽到简单题,都是中等难度题目,但是运气又好了点,考试前一个小时刷题碰到了跟第三题类似的,结果第一题100%,第二题空着了,第三题做出来了。就这样通过了.
二、性格测试:沿着乐观,积极向上,奋斗,团结,合作,听取他人意见等思路走,问题不大。
三、技术一面:
自我介绍
项目介绍
先是追着项目问,项目中遇到的最大的挑战是什么,怎么解决的。
jvm内存模型
gc的时机
年轻代和老年代gc的区别,底层实现。
priorityQueue底层原理
常用设计模式
springmvc的流程
自定义的bean怎么交给spring管理
面试官比较仁慈,没有多问,20来分钟就开始手撕代码。
题目是一个数组,按字符出现次数正序排列,如果次数相同,则倒序。比较简单。
四、技术二面:
bean的加载过程
spring容器加载哪些bean,加载哪些配置文件
非spring管理的bean怎么使用spring管理的bean
多线程处理共享变量的几种方式
设计模式,用到了哪些
mybatis dao接口与mapper怎么映射的。多数据源怎么映射
mybatis 分页怎么实现的
sql优化
手撕代码题目是 一个数组,找出非成对出现的一个数字,比较简单。
尴尬的时候来了,两轮技术面试评级不同,要加面。。。。
五、技术三面:
说实话,这是我经历过的面试中历时最长的一次,1小时40分钟。。。。被虐的不行了,考察了太多方面的技术,面完后我是懵逼的。。
大致回忆一下:
上来就是一道编程题:
一个字符串,找出至多存在两个重复字符的最长子串,直接暴力破解了,然后被问有没有更好的思路,说了个动态规划,就算过去了。
java:问了多线程,锁,线程池核心参数,参数设置依据,怎么看线程里任务的执行进度。volatile的作用,锁的原理等
jvm:问了运行时数据区域,各自作用,年轻代和老年代的gc区别,年轻代的对象满足什么条件下会转移到老年代。full GC一般持续多久会对应用产生影响,有没有看过gc的日志。
异常问题排查:cpu爆满的排查,内存爆满的排查,应用运行了一段时间突然变慢的排查,接口响应慢怎么排查,怎么定位是哪块代码的问题。
代码规范:写代码是要注意哪些东西,从性能上,可读性,可扩展性上分析
数据库:索引,sql优化,执行计划
中间件:redis的常用数据结构,用在什么地方。分布式锁的原理。kafka用在什么地方,消息丢失问题以及怎么解决。
spring:aop怎么理解,有什么好处,使用场景,aop的原理,有没有自己实现过动态代理。
暂时只能回忆这些了,后面再更新吧。
然后就通过了三面,定级终于定下了,等着综合面试和人事面了。后续继续更新接下来的面试。
更新。。。。。
这周一,也就是10月底,迎来了人资面试,主要内容:
自我介绍,了解平时爱好,会根据爱好追问,判断爱好是否真实。其次聊家常,家庭情况,判断是否稳定,以及侧面考察对加班的看法,职业规划等。还有薪资讨论等。时长30分钟。
接着第二天11.01就综合面试了。这个面试安排的挺快的,有点意外,因为网上都说主管面试很难约,有的等了一周,有的等了半个月的。可能运气好,正好主管有空吧。主管面应该是个业务主管,聊聊家常,了解做项目的经历,项目中遇到的最困难的事情,怎么解决的。以及加班的看法,因为华为的加班那是少不了的。反问环节问了部门业务的问题。感觉还是有前景的,能赚钱的业务才是好业务。最后还是谈薪资。结束。
11.02,接到通知,通过了,等offer的审批流程,说是3-5个工作日,看下最后需要多久吧,回头再来更新。 更新。。。。。 11.10晚上收到offer,第二天去体检了,可以找出体检报告快速的医院。体检结果出来后,还需要一周时间,才能入职,因为工卡的制作和邮寄,需要一周时间。但是如果想加快入职也可以,但是入职第一周没有工卡。每天只能通过访客证入园区,访客证是每天开一次,稍微有点麻烦。