斗鱼提前批服务端SP面经总结+建议

斗鱼服务端sp面经

声明
以下的内容中我的回答不一定是正确或全面的,欢迎大家纠正。

正文
周日10点的场,9点20带着简历到了斗鱼面试的楼。填了个信息表,开始排号。大概10点10分带到一个房间开始一面。

一面30min,重基础,几乎没问项目。没有自我介绍,而是面试官看着简历问问题。(乱序)

1.TCP三次握手怎么回事? 答: 流程+两个原因

2.TCPUDP区别是什么? 答:网上常规答案。然后又补充说,二者不同的特点对应着不同的适应场景,如视频可以用udp,像QQ打字通信应该tcp。直播中主要用的是基于tcp的RTMP协议,但是udp也有一定的应用,比如YY的直播就是基于udp实现的私有协议。 问: 你怎么知道它们用什么协议的? 答:YY的协议是在网上了解到的,斗鱼的协议我就比较了解了,因为我在斗鱼有直播间,每次开播的时候需要推流软件填写RTMP服务器URL和推流码。推流码应该是用于身份识别的,避免非斗鱼主播的用户占用推流服务器。 面试官又多问了几句,用斗鱼播什么(游戏,有时候敲代码),有人看嘛有人送礼物吗(有,不多)。 气氛就变轻松了。

3.JVM内存模型能说一下吗?在方法内和类内定义这个: A a = new A() ,引用和对象分别在哪里? 答:内存模型4个区说一下。 new出来的对象一定在堆。如果是类中,那么这个引用a就是类的属性了,在方法区。如果在方法中定义的,那就在虚拟机栈的栈帧中。

4.Java中如何使用多线程技术? 答:首先答创建线程的主要方法(继承Thread 或实现Runnable),重载run方法然后start调用。 高级一点的可以使用线程池,可以避免线程频繁创建和销毁的开销。

5.线程安全的集合类了解吗? 答:HashTable ConcurrentHashMap的实现区别 答了。

6.数据库的引擎了解吗,InnoDB MyIsam区别说一下? 索引的优点和缺点? (这个问题比较常规,网上一堆总结。另外可以从底层B+树存储key value的差异来解析两种引擎索引的区别)

7.Redis了解吗,有几种数据结构? 答:字符串 哈希 list set sortedset

8.Linux常用命令有哪些? 有个看日志的是什么? 答:常用的ps find grep 等。 看日志用tail -f实时查看,-n可以指定查看尾部多少行。

9.Springboot中常见的注解有哪些? 答: Component Configuration Controller RestComtroller Service 等。 C和RestC的区别? 答:RestC返回值的就是响应体,Controller返回的值经过视图解析器对应到其他页面,Controller加个@ResponseBody注解可以成为RestC的效果。


等了十分钟后,二面40min左右 项目问了不少

1.介绍下自己,说一个觉得比较成功的项目。 答了一个HTTP服务器嵌入Android设备的项目。

2.项目中轻量级HTTP服务器是怎么实现的? 答: github上找了一个,然后按照项目需求把同步方式 路由配置等参数进行了修改。

3.常见的HTTP状态码有哪些?什么意思? 答:200OK 500内部服务器错误 404NotFound 403未认证 还有两个3字头的表示重定向,具体记不清了。

4.有没有做过网站相关的后台项目? 答: 做了一个宠物商店图片视频等信息的展示系统(很小但是上线了的一个项目),用的Springboot+Mysql+Redis

5.哪个地方用到Redis了?Redis的几种数据结构各自有什么用? 答: 用Redis存放被高频访问的信息,提升读性能。 用途方面,普通的字符串用处很广泛;曾经用Redis的List模拟过消息队列;Set没用过,但是感觉可以用来存放用于判断的信息,比如一个用户id不在某Set中,即判断他没有某权限;哈希可以用于存放对象信息,把对象属性作为哈希的键和值。

6.Mysql的事务隔离级别说一下,分别可能产生哪些问题? 答:(这个问题也比较常规了。但是第三个级别也就是默认级别的名字我忘记了)blablabla. 问:最高的隔离级别串行化,具体是怎么操作的?如果两个事务操作的记录行数不同的话,可以同时执行吗? (这个问题我不太确定,当时答的是即使不同也不行)

7.TCP三次握手四次挥手的过程和原因? 最后是谁要处于TIME WAIT状态? 答:常规问题,常规答案。

8.如果客户端想上传一个很大的视频,服务器端该怎么处理? 之前没有接触过这块,但是想了一下觉得应该是切片,小块小块地上传,就具体回答了一下。 回答完,我又扯到了跟分片上传很像的HLS直播协议,进而是斗鱼直播所用的RTMP协议,面试官对这个很感兴趣,这块问题我们讨论了很久。问我怎么接触到这个的,我说在那个小项目里一开始想用RTMP做一个小直播,但是因为要用FLASH就放弃了,然后又问了一下斗鱼应该是自研了一个播放RTMP流的前端播放器吧。后面我和面试官又讨论了RTMP和HLS等协议的区别,前者基于TCP后者基于HTTP,另外还有基于UDP的一些私有协议,它们的实现方式所决定的时延和性能消耗等的区别。 面试官对这块很满意,说看得出来你还是做了很充分的相关的学习和了解的。

9.JVM内存模型?如何GC进行优化? 答:内存模型答了。 优化方面,要结合具体业务和内存占用情况,另外要根据需求选择对应gc收集器,如要控制吞吐量就用G1,要最短停顿就用CMS,然后顺带着提了一下CMS的优缺点。

10.除了Java还会别的语言吗?对GO有了解吗? 答:还会Python和C++,对Go用过一点但是了解得不深。 面试官就表现出很强的问Go的欲望,说那我问你一些Go的问题吧,我说我估计深一点的都答不上来,因为只是项目过程中一个工具要用Go编译,所以体验过一些,也试过用Go十行写出来一个Http Server,他就没问Go了。 然后又讨论了一下语言差异,说了一下为什么我选择Java(速度快+不用太操心内存管理);Python开发效率快但是运行慢;Go也是编译型的所以也很快。面试官说现在一个大型的网站,服务端这块几乎不会选择用单一的语言去完成。

11.你有没有什么问题要问? 问了一下部门负责的业务以及主要的技术栈;另外问了一下斗鱼加班的情况。 主要语言是GO其次是Java。 斗鱼加班不多,相对轻松一点。


二面面完快到中午了,公司点了外卖给面试者。吃完又等了一会儿,hr面。就一些常规的hr面应该有的问题
期望薪资多少;对未来的规划;校招进度如何了,有拿了offer吗,有什么选择倾向;平时业余除了学习还会干嘛;希望团队的氛围是怎样的;之前的实习经历遇到的最大困难是什么,怎么解决;希望自己进入斗鱼一年后是处于什么样的状态等等。 hr面还是很重要,但是这里不过多阐述了,我是表现出了极大的诚意(因为确实想去),然后在回答问题的时候尽量显示出自己对未来的思考和以及其他能力(比如沟通等等)。 后面hr又问了可不可以提前来实习,以及介绍了加入斗鱼后的培养计划等等。 最后我问hr可不可以看看前面两个面试官对我的评级,当然是被拒绝了(建议大家不要问这个愚蠢问题,要问也不要直接问),但是hr说两个面试官对你的评价都不错。 一周左右会陆续出结果。

周日面完,忐忑地等了好几天,到周四下午才接到offer call。本来都想好了怎么谈薪资,结果hr直接说,这边给你的评级是S,薪资也说了一个我很满意的数字(这个不方便透露了,大家可以参考offershow上别人的爆料),我寻思着再多谈1k也没啥必要了,就直接接了。然后又问,9月开始能不能提前来公司实习;以及明年的上半年能不能来实习。其他也没问什么问题了,到这个时候基本就放心了。(接电话的时候语气很镇定,哦,好的,这个数字在我可接受的范围之内。实际上嘴都快咧到耳朵根子了hhh)  说是最近几天会把offer letter发来。

总结:
这次我自认为最大的成功之处在于,回答完面试官问的问题Tcp和文件上传问题之后,成功延伸到了RTMP HLS等直播协议。因为之前为了我的小项目确实有了解过这块,加上马上要面斗鱼了,就总结、整理了一下,结果派到了很大的用场,给面试官留下了很好的印象,体现出了自己探究问题的能力和对斗鱼的诚意。当然了,这些都是锦上添花的点,如果问的基础的问题答得不尽人意的话,最后还是会一个凉凉送给自己的。 关于延伸问题这块,这是很重要的一点,因为面试官问问题不是为了刁难我们,而是为了摸底,了解我们到底掌握哪些技能到哪种程度;如果你能将你掌握的技能/知识点整理出一个能够相互联系的结构(技能树、知识树),当面试官问你一个问题后,你先把它回答出来,然后如果可以向更深入的方向延伸,或者另一个知识点跟这个的原理类似,你都可以去告诉面试官,我还对xxxx有所了解,这个跟xxx是差不多的,面试官可能选择让你继续说下去的。
一些其他的建议
不知道有没有同学跟我有类似的情况:实习经历虽然有,但是不是后台的岗位(我一段测开实习一段Android系统开发实习)。这种情况下如果你想要投后台,可能需要将实习所做过的项目中跟后台相关的东西突出一下,比如涉及到HTTP的内容之类的;另外,最好还是有一个纯后台的项目,不管是慕课上去跟着做还是学完框架之后自己试着开发一个demo(但是尽量不要去做那种xxx员工管理系统,我感觉面试官一眼就看出来是水的),多去想想有没有自己能用后台开发技术解决的实际问题,比如我做这个宠物商店信息,缘由是我姐最近在做my god生意,在朋友圈发宠物的视频,我就想着能不能做个小平台让她用,实际上整个项目的逻辑很清晰很简单,但是确实很有用,证明自己有相关的技术栈的实用经历。

最后的话
提前批虽然已经结束了,但是正式批还在流程中,虽然hc少了但是大家还是有机会的,加油!欢迎想问问题的或者跟我一样拿了斗鱼offer且准备去的同学私信交流。另外,后面可能会发个帖讲一下自己选择公司/岗位的一些想法和原因,看我懒不懒吧~最后为offershow公众号打个广告,很好用的公众号,还组织了交流群,非常有用,强烈安利!
祝大家武运昌隆,早日上岸。
#斗鱼##面经##校招##Java工程师#
全部评论
是一定是实习吗
点赞 回复 分享
发布于 2019-09-06 14:13
有内推吗?
点赞 回复 分享
发布于 2019-09-06 14:45
大佬,tql
点赞 回复 分享
发布于 2019-09-06 15:09
您好,请问可以内推吗?
点赞 回复 分享
发布于 2019-09-15 19:00
话说我只用go可以投斗鱼吗🤣
点赞 回复 分享
发布于 2019-09-15 19:08
斗鱼服务端是不是主java?另外可以同时投递几个岗位?谢谢大佬~
点赞 回复 分享
发布于 2019-09-15 20:56
大佬,我今年暑假去斗鱼实习,方便加个vx交流下嘛😊
点赞 回复 分享
发布于 2020-05-10 14:31

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
评论
6
91
分享
牛客网
牛客企业服务