搜狐、58同城社招Java工程师面试
搜狐
做了笔试题,一面针对笔试和简历提问了一些基础问题。
二面技术经理就比较偏架构和中间件的应用,提问了项目,主要考察了服务治理和消息队列等中间件使用的问题。
面试问题:
1、手撕代码。牛客题霸上的原题,可以去看看:NC63扑克牌顺子。
2、消息中间件如何解决消息丢失问题
3、Dubbo的服务请求失败怎么处理
4、重连机制会不会造成错误
5、对分布式事务的理解
6、深入分析几个设计模式
面试最后提问了一个不定长字符串转为定长字符串的问题,这个简单的问题被我想复杂了,没有Get到面试官的点,考虑了唯一性,性能等,扯了一大堆。
也提醒一下大家,面试过程中要保持清醒,不要有思维定式,除非是底层研发岗位,社招对算法的考察不会特别难,用正常的思路去解决就可以。
58同城
三轮技术面,大部分是实际场景的算法和系统设计类问题。
面试问题:
1、HTTP请求的报文格式Spring的事务实现原理
2、实际场景问题,大量用户数据如何在内存中排序和去重
3、缓存机器增删如何对系统影响最小,一致性哈希的实现
4、Redis持久化的几种方式
5、Redis的缓存失效策略
7、实际场景问题解决,典型的TOP K问题
8、实际场景问题,海量登录日志如何排序和处理SQL操作,主要是索引和聚合函数的应用
国美在线
做了一份笔试题,主要考察Java基础,数据库,设计模式以及数据结构,要求写出B-Tree的节点结构,算法题目是一道等概率抽奖的题目,用蓄水池抽样算法解决了。
面试问题:
1、SQL语句编写。
2、MySQL的几种优化。
3、Spring行级锁。
4、Spring衍生的相关其他组件整理。
5、RMI的几种协议和实现框架。
6、BTree相关的操作。
7、数据库锁表的相关处理。
8、考察跳台阶问题。
另外面试过程中询问了一些工作中用到框架和组件的版本等细节问题,平时没太关注,后来思考了一下,对开源组件的应用,版本的管理很重要。