360商业产品部web后端工程师面经

360商业产品部web后端工程师面经

一面

一面是个小胖小胖的面试官,说我的实习经历挺丰富的(几个校内项目跟一个小公司实习项目),基本上问项目跟场景,中间穿插一些基础知识

  • 讲实习项目的简单业务流程,数据库有水平拆分什么的吗?没有,数据量还没到,然后没啥问的
  • Slice与数组区别,Slice底层结构
  • 项目里的微信支付这块,在支付完微信通知这里,收到两次微信相同的支付通知,怎么防止重复消费(类似接口的幂等性),说了借助Redis或者数据库的事务
  • 项目里的消息推送怎么做的(业务有关)
  • Go的反射包怎么找到对应的方法(这里忘记怎么问的,直接说不会,只用了DeepEqual,简单讲了DeepEqual)
  • Redis基本数据结构
  • Redis的List用过吗?底层怎么实现的?知道但是没用过,不知道怎么实现
  • Mysql的索引有几种,时间复杂度
  • InnoDb是表锁还是行锁,为什么(这里答不出来为什么,只说了行锁)
  • Go的channel(有缓冲和无缓冲)
  • 退出程序时怎么防止channel没有消费完,这里一开始有点没清楚面试官问的,然后说了监听中断信号,做退出前的处理,然后面试官说不是这个意思,然后说发送前先告知长度,长度要是不知道呢?close channel下游会受到0值,可以利用这点(这里也有点跟面试官说不明白)
  • 用过什么消息中间件之类吗?没有
  • 有什么问题吗?评价?后面还有面试,后面再问吧

二面

二面的面试官好像是部门技术总监,面完了加微信,可能需要Go的人,感觉很多不会然后给过了,面完面试官人超好,微信推荐我看书

  • 生产者消费者模式,手写代码(Go直接使用channel实现很简单,还想着面试官会不会不让用channel实现,不用channel的可以使用数组加条件变量),channel缓冲长度怎么决定,怎么控制上游生产速度过快,这里没说出解决方案,只是简单说了channel长度可以与上下游的速度比例成线性关系,面试官说这是一种解决方案
  • 手写循环队列
  • 写的循环队列是不是线程安全,不是,怎么保证线程安全,加锁,效率有点低啊,然后面试官就提醒Go推崇原子操作和channel
  • 写完代码面试官说后面问的问题回答就可以,不知道的话没关系
  • Linux会不会,只会几个命令,面试官就说一共也就一百多个命令
  • TimeWait和CloseWait原因
  • 线段树了解吗?不了解,字典树?了解
  • 看过啥源码,nsq(Go的消息中间件),简单问了我里面的waitgroup包证明我看过
  • sync.Pool用过吗,为什么使用,对象池,避免频繁分配对象(GC有关),那里面的对象是固定的吗?不清楚,没看过这个的源码
  • 有什么问题吗?评价?基础不错,Linux尚缺,Go的理解不够深入,高级数据结构不了解,优点是看源码
  • 后面面试官讲了他们做的东西,主要是广告部分,说日均数据量至少百万以上,多达上亿,高并发使用Go支撑,有微服务,服务治理,说我需要学的东西挺多的
楼主国内某双非学校软件工程专业
#面经##秋招##360公司##C++工程师##内推##提前批#
全部评论
这二面…… 让我去直接gg,dalao强
点赞 回复 分享
发布于 2018-08-20 23:33
我也要去面试这个岗位了,感谢大佬的分享,
点赞 回复 分享
发布于 2018-08-21 09:54
大佬hr面怎么样,据说hr面水很深
点赞 回复 分享
发布于 2018-08-21 17:32
后来怎么样了?
点赞 回复 分享
发布于 2018-08-24 01:44

相关推荐

点赞 25 评论
分享
牛客网
牛客企业服务