首先介绍一下我的面试经历,上周花了一周的时间,面试了5家公司,拿到两个offer,这篇面试分享是在拿到第二个offer的当天晚上写的。
由于时间相隔较短,所以面试大部分内容都记得,我就单刀直入直接写一下我的面试内容,写作水平一般,有点像记流水账,大家将就着看看。。。
面试过程还原:
一、360金融
360一上来就是做几页纸的题其中包括选择题20题和简述题9题,加上填表时间,一共给了我45分钟。
其中简述题主要有以下几个
写出最近项目中代码工程目录结构,简述各部份作用
如何避免对外开放接口被攻击,有哪些常用的防护手段可以用上?
描述线程池的作用,并写几个常用的线程池类
什么是操作的互斥性,接口幂等性如何保证?
异步通知交互补偿机制的目的和设计?实际工作当中有没有做过,踩过什么坑么?
描述一下TCP三次握手和四次握手地过程,查看TCP连接各状态用什么命令?
谈谈Threadlocal是如何解决并发安全的?
Equals()方法与==的区别?重写equals方法的还需要重写哪些方法?为什么?
列举一个设计模式,用代码或者伪代码实现
45分钟后,准时过来收题了。
过了一会之后、进来了一位面试官、进行了技术上的面试。
谈谈你在项目中的角色,做出哪些贡献、项目的组织架构是怎么样的?公司有多少人?
给我画一画系统架构图
谈谈并发,谈谈分布式缓存
谈谈分布式事务
你在实际的工作当中有没有用到线程池?
谈一下你平时是如何设计系统的?系统是如何拆分的?要考虑哪些问题?
如何将一些热卖的商品推荐给用户的?
谈谈做过哪些系统优化?以你的实际经验和踩过的坑拿几个真实的案例出来说说?
面试结果:没有进入下一轮、直接回去等通知,挂掉。。。
二、行云全球汇
1、这家公司就是HR一上来就谈了一些问题,比如你的职业规化、技术上有哪些短板、为什么要离开上家公司、跟上级领导性格不合怎么办、遇到技术问题出现僵持不下怎么办、以及问了一些其它的一些问题。
2、然后技术人员过来交谈了近一个半小时,谈的技术主要围绕简历上进行的。
谈谈分布式事务?
分布式缓存的一系列问题
你看过springboot源码,说说springboot的启动过程?
beanfactory与factorybean的区别是什么?
有用过线程池吗?有哪些线程池?线程池里面有哪些核心参数?
Jdk7与jdk8的区别
谈谈HashMap
有用过volatile吗
springsecurity与shiro的区别、以及它们的使用场景?
zuul网关Filter处理流程及异常处理
eureka与zookeeper注册中心的区别?不用eureka可以吗?eureka已经停止维护了,有哪些替代方案?
现场手写遍历一棵树
在系统中如何做sql优化的? b+树和b-树有什么区别?
mybatis中${}与#{}的区别?Statement与PreparedStatement的区别?
mysql中的数据如何与es进行同步的?同步是否有延迟?
说下netty,你在实际的工作当中,哪里用到了netty?
分布式会话是如何实现的?
Jvm中有哪些算法?
一个服务慢了你是怎么定位的?
3、然后就是管理者来谈了一些问题
主要问了就是你在项目中的角色、有没有带人、手下面有几个兄弟、以及未来的规化等。
4、再就是换了一个HR来谈了一些问题,过往的一些工作经历、 确定入职时间,谈薪等。
面试结果:拿到offer
三、某千万级用户量的水果新零售公司
这家公司也是另外一家楼主拿到offer并最终选择去的公司
楼主选择的原因是公司流量和用户量都在千万级别以上,有较大的发展空间
另外,薪资是25K * 13,也比较满意,工作时间是双休5天7小时制,整体来说性价比还是很高。
下面说下这家公司的面试过程:
1、一上来就是研发副总监进行面试
自我介绍一下
你们系统的用户量有多大?日活多少?高峰时期qps有多大?
说说分布式事务,给我手画一下你们分布式事务是如何实现的?用了这个事务框架有没有遇到问题。
Redis有哪些算法?给我描述一下。
给我画一下你们的系统架构图(然后进行了描述)
说说你们的系统为什么要用springcloud,不用dubbo?
说说dubbo?
说说zookeeper?
说下java的内存模型
netty的线程模型是怎么样的?
tomcat有哪几种 Connector运行模式?
Spring提供了哪几种标准的事件、分别给我描述一下?
mybatis 是否可以映射 Enum 枚举类?
给我描述一下springmvc的请求流程
说说分库分表有哪些方案,为什么选择了sharding-jdbc而没有选择Mycat,说说你们是按照什么规则进行分库的?分库分表之后是如何进行关联查询的?
说下jvm的运行时数据区?有哪些垃圾回收器?
有对mysql进行优化吗?是怎么优化的?
有用过流程引擎吗?说说Activitiy底层原理。
2、然后是总监上来谈了一会、主要谈了一些个人倾向与职业发展等问题
3、HR面谈、比较详细的问了过往的一些经历、谈薪、以及什么时候入职等。
四、其它2家小公司
此外,楼主还面试了其他两家小公司,问的东西相对来说都比较简单、最后都是因为双方不太匹配、最后没有谈成。
个人的一些面试体会
最后说一下我个人在面试中的一些体会,供大家参考。
第一个就是答题思路,这一块的话,当面试官问到某个问题的时候,我脑海里面就基本上呈现出一幅画面,加上一些文字性的记忆,然后可以一步步的说出来。
所以建议大家平时准备的时候,尽量对某个技术点多画图,画图理解,辅助记忆,个人感觉效果挺好的
另外,找工作面试是一个重要的环节,面很多试是一个身累心累的工程,在寻找到下一个理想下家之前,每一次感觉就要胜利,又每次掉回空中,不想要被折磨。
我觉得要学会总结,总结自己,总结公司,要先认识到自己的优缺点,硬件和软件,硬件专业技能,行业资源,从业经验,软件性格成长,情绪管理,精神状态,未来规划等。
关于offer选择的话,应尽量选择在自已期望范围之内的,包括薪水、工作氛围、技术、业务等、这样进去之后你才会做得开心。
这就是我的面经分享,希望可以帮到各位在准备面试或正在面试的朋友们。
END
石杉的架构笔记(id:shishan100)
作者:中华石杉,多年BAT架构经验倾囊相授
热门评论
我配不上你文章,我太菜了。?
我配不上你文章,我太菜了。?
想问一下这是几年的?应该是3-5年的吧?