刚从鹅厂面试回来,分享我的java后端面试经历(腾讯五面)!

Javaspring12 · · 1889 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征。 ![image.png](https://static.studygolang.com/190127/969b694850e73497ff5b807cc952c61c.png) 鹅厂 面试职位:java后端开发工程师。 在鹅厂的面试前三面真的有点急促,一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和HR面。整个过程还是比较曲折的,技术面试的难度也挺大的,不过他们部门也是Java线,所以还比较有的聊。现在已拿到offer。 下面我总结的遇到的四面技术面试题和hr面。 一面: 1 有序数组排序,二分,复杂度 2 常见排序算法,说下快排过程,时间复杂度 3 有N个节点的满二叉树的高度。1+logN 4 朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度,过程。没讲清楚 1. 初始化元素 2. 实现元素与元素间的联合操作 3. 实现查找元素所在树的根节点 4. 解决一个问题,判定两个元素是否在同一棵树上(两个元素是否相互连接) 5 单元点最短路的方法,时间复杂度 6 如何实现关键字输入提示,使用字典树,复杂度多少,有没有其他方案,答哈希,如果是中文呢,分词后建立字典树? 7 hashmap的实现讲一下吧,讲的很详细了。讲一下红黑树的结构,查询性能等。 8 Java中的垃圾回收讲一下,讲了分代,gc算法,gc root可达性分析等 9 讲一下两个项目你都做了什么把。 10 除了代码之外你还学习了什么技术,框架。 11 死锁是怎么产生的 12 线程和进程的区别 13 进程的通信方式 14 CPU的执行方式 15 代码中遇到进程阻塞,进程僵死,内存泄漏等情况怎么排查。通过ps查询状态,分析dump文件等方式排查。 16 Linux了解么,查看进程状态ps,查看cpu状态 top。查看占用端口的进程号netstat grep 17 10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。MapReduce分割文件处理。 他说可以用cat | grep 管道处理。 二面: 1 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程 2 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。 3 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。 先说了一下dfs递归实现。面试官说要优化。 说了一下用迪杰斯特拉的思路,说可以。 4 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。说了好几种方案,面试官引导我优化了一下,但是还是不满意,最后他说跳过。 5 hashmap的实现,hashtable,concurrenthashmap实现。 6 MySQL的索引,B+树性质。 7 Linux的cpu 100怎么排查,top jstack,日志,gui工具 8 Linux大文件怎么查某一行的内容。 9 Redis内存数据库的内存指的是共享内存么 10 Redis的持久化方式 11 秒杀系统的架构设计 三面: 1 十亿个数的集合和10w个数的集合,如何求它们的交集。 集合的数字不重复。 我讲了两次循环,两次hash,以及排序或者合并等方式。。都不对。后来面试官说是对小数组做hash,然后遍历大数组即可。我完全想错方向了。 2 十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。 3 TCP和UDP的区别,具体使用场景呢。 4 TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。 5 对于socket编程,accept方法是干什么的,在三次握手中属于第几次,可以猜一下,为什么这么觉得。 6 Linux操作系统了解么,了解一点点,就没问了。 7 对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab,然后就没问啦。 8 除了单例模式,知道适配器模式怎么实现么,有什么用 9 回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么,说了几个不太对,他说要避免广播风暴,答不会。 10 Redis和MySQL有什么区别,用于什么场景。 11 问了一下最近看什么书,什么时候开始写博客的 12 问了还有几轮面试,他说这轮我可以过,有点小惊喜 四面: 三面过了半个多月,终于安排四面了。 1 自我介绍 2 项目,收获 3 Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。 4 TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。 5 TCP的四次挥手,time wait状态有什么意义。 6 说完这个他问我有什么想问他的了。 7 我问他为什么隔了这么久才面试,而且之前三面都只是初试,然后他说最近他在休假,所以就。。。害我担心了好久。他说接下来等HR面就行了。 HR面: 1 自我介绍 2 实习收获 3 台湾交流体验 4 之前实习公司的情况,拿到offer了吗,会如何选择呢 5 排一下公司,部门,薪资和城市等因素。 6 你的优缺点,如何改进 7 学生时代最成功的事 8 你的预期薪资 总结 总的来说在腾讯的面试还算是顺利吧,经验也谈不上有太多,如果各位要去面试的话,基础还是最重要的,最后我这里也总结了像BAT这种大厂的面试题,和一些java架构进阶视频的资料 ![image.png](https://static.studygolang.com/190123/4f115c37b0b6153de1ef5c1ccbc22190.png) 资料获取方式: 推荐一个BAT架构技术交流群:957413713 ,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析 ,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,相信对于已经工作和遇到技术瓶颈的码友,在这个群里会有你需要的内容。 点击链接加入群聊【BAT架构技术交流群】:https://jq.qq.com/?_wv=1027&k=5XRbSdL

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1889 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传