美文网首页JavaJava成长之路Java架构技术进阶
某211院校转行跨专业的三跨学生面经(头条、拼多多、华为、网易)

某211院校转行跨专业的三跨学生面经(头条、拼多多、华为、网易)

作者: Java_老男孩 | 来源:发表于2019-06-11 15:03 被阅读6次

    一、开篇

    本人作为某211院校某土木专业下属二级专业的学生,大二时通过知乎发现本专业前景堪忧(改变人生的一个知乎问题!)早早地做出了转行的打算。承蒙南大不弃,最后跨专业保研到了南大软院,事实证明,学校的名声在春招时给我带来了很大的帮助,掩盖了跨专业的劣势。过了研一上学期,基本上寒假一回来,2月底就算就正式开始了春招实习

    二、before 正文

    在面经之前,我想从切身体会上说两点很重要的场外因素:面试节奏和心理准备

    1.面试节奏

    没真正经历过面试之前,我们肯定会想着:先面小厂练练手,再去面大厂。然而,事实上,并不是先小厂再大厂的节奏,而是大大大大小小小大大小小小小的节奏。大厂和小厂通常时穿插着面试,并且往往是大厂先面。这就要求我们一是从春招开始就做好全部的准备——就算深度可能不够,广度至少得覆盖大部分的知识点,做到“就算3月1号面bat,起码能过1面”的水平。如果把握不大,不如拖两天面,这两天的成长会非常迅速(就像期末考前的两天)。我自己就吃了个大亏:腾讯一面非常查,post和get都说不清(天知道我怎么想的),所以在别人腾讯2、3、4、5面的时候,我整个春招只有这一次机会——表现太差了其他面试官也不会捞的。

    考虑到我们的能力随着时间是慢慢增强的,所以个人觉得把最想去的公司安排在复习的中后期比较合适。当然,要考虑到hc的问题。拿我举个栗子,本来我3月上旬就官网投了头条,但因为种种原因一直没有面试,错过了3月下旬的一次集体面试,直到4月下旬才面试通过。相比三月面过的同学,我失去了部门的选择余地,但是三月下旬我也确实没信心能够通过面试。而且,针对头条这家公司,请一定先尝试内推,无笔试,能自由选部门,运气好两面进,最后再去官网投递!

    2.心理准备

    春招的战线能从2月拉到5月,十分漫长。中间不仅要看书学习,还有不断的面试,以及学校可能安排的课程与考试,所以心理健康很重要啊。各位大兄弟有女朋友的抱紧女朋友,没女朋友的抱紧舍友吧(在此鸣谢我的几位舍友们!)

    另外,在春招之前就要有“马上要面临春招”的心理准备,理想的时间线是:

    • 去年11-12月认识到要找实习,开始带着刷题、看面经资料(算法是最难突击的)
    • 寒假没项目的做一个有深度的项目(非crud),有项目的深挖项目(分布式、高并发往上怼,万恶的阿里)
    • 3月1号开始春招,海投并准备面试。
    • 3月-4月:(腾讯、阿里、网易等大厂的提前批阶段,头条、pdd的滚动面试阶段、其他厂也陆续开始)边学习边看牛客面经边面试,面试崩了心态别崩,总结教训,下一场好好面。建议先拿一个offer再说,不然后面心态容易炸。
    • 4月-5月:(腾讯、阿里等大厂的正式批,头条、pdd的滚动面试阶段、华为、蓝绿陆续开始)大佬这个时候已经拿到offer了,像我这样提前批凉了的就好好准备正式批吧,依然是面试和学习交叉进行。腾讯不锁简历,被捞了就能面。阿里一个阶段只能面一个,慎重选择部门,别头铁。蓝厂只要一面就能进,性价比太高了。华为也很好,2面问了问基础,就是性格测试比较玄学(谁能想到现在海思被推倒了风口浪尖)。
    • 5月-6月:大厂基本都在之前结束了,但是华为是个例外,offer发的慢,入职也慢,慢慢等开奖吧。不过这个时候还能接到没招满的部门的电话,可以捡个漏。我甚至在头条总部大楼里接到了阿里一个部门的面试电话(= = )

    三、正文

    以下按顺序贴一下我面的各厂的面经。

    网易一面(互娱)

    • 自我介绍+项目
    • RPC框架和普通http有什么区别和优势? 基于Tcp封装还是http封装的
    • rpc是长连接吗?如果要传输一个特别大的文件 底层还是基于流吗? Nio是一个什么IO模型?
    • github了的watch star fork
    • 异常和error的区别,oom是error还是异常?什么东西分配在堆上和栈上?
    • 只对堆进行gc 这句话对不对 调用system.gc()马上就执行gc吗
    • 缺页中断 分页地址转换 内存抖动
    • linux的fork指令对数据的拷贝是马上就拷贝的吗?
    • linux看网络状况用什么 看日志用什么?
    • 拥塞控制 以及里面的算法?流量控制的协议
    • Ping命令做了什么?基于那一个层?ping是哪一个层的?
    • Mysql和Redis最大的区别? MyISAM和InnoDB的区别?
    • Redis 的实现。为什么这么高性能 ?set kv键值对进去的时候,kv键值的长度是不一样的 你觉得底层的数据结构是一样的吗? 持久化的策略 长久下来aof文件会很大 怎么办?InnoDB行锁的分类 (其实就是排他锁和共享锁)
    • Select from update 是什么效果?事务你平常是怎么处理的?
    • 两个队列实现一个栈、圆里均匀地生成点(极坐标系)
    • ps命令的底层实现(???)
    • 类加载器 自己写过没

    网易二面(互娱)

    • 自我介绍,爬虫项目功能介绍
    • 爬的是静态网页,还是异步加载的,怎么爬异步加载的?性能怎么样?如果性能要求高,怎么办?
    • 介绍一下协程 实现原理
    • 一个协程爬网站的时候 被卡住了 同一个进程的协程会不会卡住
    • 协程的好处 和线程的对比
    • 协程能解决什么问题
    • 有做压力测试吗?什么情况下需要用协程
    • 协程底层机制 yield底层实现
    • rpc框架全双工 还是半双工 单向还是双向
    • 不考虑全双工 在半双工的情况下 如何实现双向?如果要实现双向的话 应该用长连接还是短连接?
    • 用短连接能不能实现半双工通信
    • 如何实现异步地获得一个RPC调用的结果
    • RPC的通信格式是基于javaAPI实现的吗?
    • 你用过什么通信格式?这几个库能不能跨语言?
    • Springboot有什么技术难点?设计微服务的系统要注意什么问题?你是怎么理解微服务的?
    • 应用可以做到水平扩展,那数据库怎么办?
    • redis怎么保证缓存一致性
    • 微服务中会指数级增加复杂度的地方
    • 场景:一千个微服务 中有一个发生故障 怎么迅速定位?

    头条北京一面

    PS:因为通过牛客视频面试,没有录音,复盘问题不是太完全。这位也是我入职后的mentor。

    • 进程调度
    • tcp三次握手四次挥手,为什么是四次。
    • 算法题:生成全排列,非递归中序遍历二叉树

    头条北京二面

    • ThreadLocal的内部实现。怎么确定一个线程使用的是哪一个threadlocal?
    • sync的内部实现,以及优化
    • sync标注不同的方法有什么区别。
    • 算法题:把汉字表示的数字转化成阿拉伯数字(我竟然按阿拉伯数字转汉字来写了,还好逻辑没问题)
    • 应用题:一个用组合模式实现的题。类似列出文件夹下所有文件。(手写有很多小问题,比如写错字,没有返回值)
    • 树存数据库里有什么办法?

    头条北京三面

    • 吹项目。重点问了Netty,启动、连接建立、NIO特点、适用场景。
    • Spring的特点、IOC和AOP
    • 数据库索引、事务
    • 算法:最小编辑距离。(运气来了,我刚好在几天前刷到原题,不然凉凉。就算这样,当场写转移方程还是漏了一个条件)

    PS:头条效率非常高。一天结束,5分钟出结果好评。但是,我投的是南京后端,最后是offer是北京大数据岗…………我实在不是谦虚,但…………最后还是念诗去北京了。

    拼多多一面

    PS:pdd笔试真是奇葩,运气爆棚做出来3道过了笔试而同样做出来三道的大佬反而没过笔试……而且3月过了笔试,再我提醒hr之后4月才安排上面试…………

    PS1:不过pdd面试体验真不错,确实比较基础。比阿里神仙打架友好多了!

    • 说说8种数据结构
    • 栈和队列的区别
    • 生活中栈的例子:真没想到,这是我整场面试里唯一不会的
    • 算法题:口述,还是TOPK原题……
    • n个节点的树可能的高度。最高和最低的高度
    • BST树的高度
    • 项目难点
    • redis的使用场景,和memrycache的区别
    • UDP和TCP的区别
    • Mysql的储存引擎和索引
    • 问了一个订单数据表(uid,orderId,time,moblie)每天2000w条,要存1年。应该怎么存?
    • 最后还就我的职业规划,跟我聊了好几分钟!体验无敌

    拼多多二面

    • 先问项目。web项目背景。如何应对高并发、如何做分布式事务。
    • 看过源码嘛?AQS和concurentHashMap和HashMap。各个版本的区别说了一下。
    • 1.8版本的concurentHashMap在单线程下和HashMap效率有什么区别
    • 多线程方面学到了什么?Netty线程模型介绍一下、Java线程池四种介绍一下?
    • Nio特性介绍
    • 你怎么自学看什么书:并发编程艺术
    • JMM内存可见性
    • 还有什么能保证可见性:sync和Lock
    • 怎么打断线程(没听明白问题,后面又扯到kill指令了)
    • 问我之前的笔试题(一个多月了哪记得)
    • 手写代码:没有任何算法,直接按题意翻译就行。但是太久没写了,写得十分差,bug还没看出来,还是面试官提醒得……

    PS:与拼多多这个产品给人得印象不同,面试体验相当不错,也不是很神仙,可能是在高速发展期吧。

    其他

    蓝厂:现场面。问了很多spring相关的,比如如何解决互相依赖的问题。

    华为:面试流程非常正式,还包了顿饭。如果不是随机分岗,华为真的很不错。

    四、总结

    整个春招期间,见识了各路大神,尤其是别人有了offer自己还没有的时候…………万幸在最后头条和拼多多给了一个达到我心理预期的offer,结束了2个多月的煎熬。

    但是很遗憾,最终还是没有拿到BAT任何一家的offer,跟其他各路大神比起来也是差远了;算法题也是因为之前没有积累,只是靠了运气过了头条的面试;每个知识点也没有深入地理解,背完现在已经忘了大半;以及最重要的,代码写少了!

    过不了两个月就是秋招了,fighting!

    笔者分享:

    分享免费学习资料,免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个赞关注我,以后还会更新技术干货,谢谢您的支持!

    下面是部分资料截图,诚意满满,感兴趣的可以加群:“708701457”免费获取


    相关文章

      网友评论

        本文标题:某211院校转行跨专业的三跨学生面经(头条、拼多多、华为、网易)

        本文链接:https://www.haomeiwen.com/subject/kgaaxctx.html