一份“热腾腾”的面经分享(写于拿到offer的24小时内)!

4,261 阅读7分钟

欢迎关注微信公众号:石杉的架构笔记(id:shishan100)

我的新课**《C2C 电商系统微服务架构120天实战训练营》在公众号儒猿技术窝**上线了,感兴趣的同学,可以点击下方链接了解详情:

《C2C 电商系统微服务架构120天实战训练营》

本文是公众号读者润土投稿的面试经历

感谢润土同学的分享

首先介绍一下我的面试经历,上周花了一周的时间,面试了5家公司,拿到两个offer,这篇面试分享是在拿到第二个offer的当天晚上写的。

由于时间相隔较短,所以面试大部分内容都记得,我就单刀直入直接写一下我的面试内容,写作水平一般,有点像记流水账,大家将就着看看。。。

面试过程还原:

一、360金融

360一上来就是做几页纸的题其中包括选择题20题和简述题9题,加上填表时间,一共给了我45分钟。

其中简述题主要有以下几个

  1. 写出最近项目中代码工程目录结构,简述各部份作用

  2. 如何避免对外开放接口被攻击,有哪些常用的防护手段可以用上?

  3. 描述线程池的作用,并写几个常用的线程池类

  4. 什么是操作的互斥性,接口幂等性如何保证?

  5. 异步通知交互补偿机制的目的和设计?实际工作当中有没有做过,踩过什么坑么?

  6. 描述一下TCP三次握手和四次握手地过程,查看TCP连接各状态用什么命令?

  7. 谈谈Threadlocal是如何解决并发安全的?

  8. Equals()方法与==的区别?重写equals方法的还需要重写哪些方法?为什么?

  9. 列举一个设计模式,用代码或者伪代码实现

45分钟后,准时过来收题了。

过了一会之后、进来了一位面试官、进行了技术上的面试。

  1. 谈谈你在项目中的角色,做出哪些贡献、项目的组织架构是怎么样的?公司有多少人?

  2. 给我画一画系统架构图

  3. 谈谈并发,谈谈分布式缓存

  4. 谈谈分布式事务

  5. 你在实际的工作当中有没有用到线程池?

  6. 谈一下你平时是如何设计系统的?系统是如何拆分的?要考虑哪些问题?

  7. 如何将一些热卖的商品推荐给用户的?

  8. 谈谈做过哪些系统优化?以你的实际经验和踩过的坑拿几个真实的案例出来说说?

面试结果:没有进入下一轮、直接回去等通知,挂掉。。。

二、行云全球汇

1、这家公司就是HR一上来就谈了一些问题,比如你的职业规化、技术上有哪些短板、为什么要离开上家公司、跟上级领导性格不合怎么办、遇到技术问题出现僵持不下怎么办、以及问了一些其它的一些问题。

2、然后技术人员过来交谈了近一个半小时,谈的技术主要围绕简历上进行的。

1、谈谈分布式事务?

2、分布式缓存的一系列问题

3、你看过springboot源码,说说springboot的启动过程?

4、beanfactory与factorybean的区别是什么?

5、有用过线程池吗?有哪些线程池?线程池里面有哪些核心参数?

6、Jdk7与jdk8的区别

7、谈谈HashMap

8、有用过volatile吗

9、springsecurity与shiro的区别、以及它们的使用场景?

10、zuul网关Filter处理流程及异常处理

11、eureka与zookeeper注册中心的区别?不用eureka可以吗?eureka已经停止维护了,有哪些替代方案?

12、现场手写遍历一棵树

13、在系统中如何做sql优化的? b+树和b-树有什么区别?

14、mybatis中${}与#{}的区别?Statement与PreparedStatement的区别?

15、mysql中的数据如何与es进行同步的?同步是否有延迟?

16、说下netty,你在实际的工作当中,哪里用到了netty?

17、分布式会话是如何实现的?

18、Jvm中有哪些算法?

19、一个服务慢了你是怎么定位的?

3、然后就是管理者来谈了一些问题

主要问了就是你在项目中的角色、有没有带人、手下面有几个兄弟、以及未来的规化等。

4、再就是换了一个HR来谈了一些问题,过往的一些工作经历、 确定入职时间,谈薪等。

面试结果:拿到offer

三、某千万级用户量的水果新零售公司

这家公司也是另外一家楼主拿到offer并最终选择去的公司

楼主选择的原因是公司流量和用户量都在千万级别以上,有较大的发展空间

另外,薪资是25K * 13,也比较满意,工作时间是双休5天7小时制,整体来说性价比还是很高。

下面说下这家公司的面试过程:

1、一上来就是研发副总监进行面试

1、自我介绍一下

2、你们系统的用户量有多大?日活多少?高峰时期qps有多大?

3、说说分布式事务,给我手画一下你们分布式事务是如何实现的?用了这个事务框架有没有遇到问题。

4、Redis有哪些算法?给我描述一下。

5、给我画一下你们的系统架构图(然后进行了描述)

6、说说你们的系统为什么要用springcloud,不用dubbo?

7、说说dubbo?

8、说说zookeeper?

9、说下java的内存模型

10、netty的线程模型是怎么样的?

11、tomcat有哪几种 Connector运行模式?

12、Spring提供了哪几种标准的事件、分别给我描述一下?

13、mybatis 是否可以映射 Enum 枚举类?

14、给我描述一下springmvc的请求流程

15、说说分库分表有哪些方案,为什么选择了sharding-jdbc而没有选择Mycat,说说你们是按照什么规则进行分库的?分库分表之后是如何进行关联查询的?

16、说下jvm的运行时数据区?有哪些垃圾回收器?

17、有对mysql进行优化吗?是怎么优化的?

18、有用过流程引擎吗?说说Activitiy底层原理。

2、然后是总监上来谈了一会、主要谈了一些个人倾向与职业发展等问题

3、HR面谈、比较详细的问了过往的一些经历、谈薪、以及什么时候入职等。

四、其它2家小公司

此外,楼主还面试了其他两家小公司,问的东西相对来说都比较简单、最后都是因为双方不太匹配、最后没有谈成。

个人的一些面试体会

最后说一下我个人在面试中的一些体会,供大家参考。

第一个就是答题思路,这一块的话,当面试官问到某个问题的时候,我脑海里面就基本上呈现出一幅画面,加上一些文字性的记忆,然后可以一步步的说出来。

所以建议大家平时准备的时候,尽量对某个技术点多画图,画图理解,辅助记忆,个人感觉效果挺好的

另外,找工作面试是一个重要的环节,面很多试是一个身累心累的工程,在寻找到下一个理想下家之前,每一次感觉就要胜利,又每次掉回空中,不想要被折磨。

我觉得要学会总结,总结自己,总结公司,要先认识到自己的优缺点,硬件和软件,硬件专业技能,行业资源,从业经验,软件性格成长,情绪管理,精神状态,未来规划等。

关于offer选择的话,应尽量选择在自已期望范围之内的,包括薪水、工作氛围、技术、业务等、这样进去之后你才会做得开心。

这就是我的面经分享,希望可以帮到各位在准备面试或正在面试的朋友们。

END

《21天互联网Java进阶面试训练营(分布式篇)》详细目录,扫描图片末尾的二维码,试听课程