腾讯-PCG-小鹅拼拼-后台开发四轮面经(3技术+1hr)

楼主暑期实习是在腾讯实习的,后面因为不喜欢实习做的工作,在八月初离职了。离职之后没多久,就被捞起来面试了。一开始被IEG的魔方工作室捞了,第一次一面时因为我身体不舒服推迟了一周,然后在准备第二次一面的前几天,它把我释放了。。。释放了。。释放了,哭了。后面就被小鹅捞了,部门主要用go。

笔试 8.23

算法是我最薄弱的了,笔试只拿了2.9+/5(微笑中透露着疲惫.jpg)。

一面 8.24

整体面了1h10min左右,没有自我介绍。
1.服务器IO延时高怎么排查?
2.服务器CPU高怎么排查?可能有什么原因?
3.服务配置多少线程比较合适?
4.java中有多少同步机制?
5.synchronized和ReentrantLock的区别?使用场景?
6.内存屏障的作用?
7.线程池中,任务队列和拒接策略是怎么使用的?
8.垃圾回收算法?老年代用哪种?
9.服务器用哪种垃圾回收算法?
10.CMS垃圾回收器的垃圾回收过程
11.怎么判断一个对象是不是垃圾?
12.tcp为什么四次挥手?为什么三次握手?
13.CLOSED_WAIT出现在主动端还是被动端?大量CLOSED_WAIT会是什么原因?
14.select和epoll的区别?epoll两种触发方式?
15.拆包和粘包问题怎么解决?
16.操作系统的进程调度算法?页面调度算法?
17.Linux的零拷贝了解吗?(不了解)
18.MySQL建立联合索引有什么指导思想?
19.给定一个字符串,怎么找到文章里的此字符串及其变种?给定一个URL,怎么在大量URL中找到与其相似的URL?(这两题答得很乱,因为“字符串及其变种”以及“与其相似的URL”面试官都没给出标准,然后我问他,他要我自己指定标准???最后答得乱七八糟的)
20.算法:(1)大数相加,编程正整数相加,口述负数、小数相加(2)数组中两个数出现奇数次,其余出现偶数次,怎么找到这两个数?(口述)

二面 8.26

1.实习
2.系统中堆和栈的区别(不是java中的)
3.深拷贝和浅拷贝?
4.什么是僵尸进程?什么是孤儿进程?
5.Redis源码读过吗?(没有)
6.Redis数据类型?
7.Redis为什么这么快?
8.Redis两种持久化方式?
9.进程通信方式?用过哪种?
10.介绍HashMap(水了超久,啥都讲了)
11.讲讲工厂模式?
12.设计一个微博功能:给你的1000w粉丝推送消息(发布-订阅模式+分批推送)
13.top能查看什么?
14.查看网络的命令?netstat怎么查看端口?
15.给你两篇文章,怎么计算两篇文章的相似度?
16.了解什么加密方式?(MD5、非对称加密)
17.Java中内存泄露遇到过吗?怎么排查?(不会排查,微笑.jpg)
18.反问

三面 8.30

1.实习&项目
2.其他公司的秋招投递情况???(如实说了)
3.未来怎么选择去哪个公司?
4.做题:leetcode64最短路径和
5.说说布隆过滤器
6.反问

hr面 9.4

主要围绕实习、在校项目提问,比如为什么做这个项目、从这个项目中收获了什么、项目实施过程中的难点/印象最深刻的事情,中途还问了家庭情况、兴趣爱好和手头上的offer,以及对现在面试的这个部门的了解。

云证 9.7

中途有hr加微信。

意向书 9.22


#面经##校招##腾讯##Java工程师#
全部评论
楼主现在还在做小鹅吗?
点赞 回复 分享
发布于 2021-07-01 17:00
请问录用评估流程用了多长时间呀
点赞 回复 分享
发布于 2021-04-19 13:23
这么难。。。我面小鹅都是写题,没什么底层知识
点赞 回复 分享
发布于 2021-04-12 00:13
请问小鹅怎么样啊,楼主签了吗?
点赞 回复 分享
发布于 2020-12-03 21:39
太难了吧这...
点赞 回复 分享
发布于 2020-10-27 21:22
云证是什么
点赞 回复 分享
发布于 2020-09-28 18:50
吸吸喜气
点赞 回复 分享
发布于 2020-09-28 15:39
楼主,我想问腾讯小鹅拼拼base在哪里啊?
点赞 回复 分享
发布于 2020-09-28 15:32
这么偏底层 好难啊 啥都不会
点赞 回复 分享
发布于 2020-09-23 19:44

相关推荐

05-10 00:10
中山大学 golang
发面经许愿过自我介绍进程和线程的区别?为什么线程会比线程快?进程中哪些资源是不共享的?共享的呢?线程中哪些资源是不共享的?共享的呢?为什么堆不共享,讲一下堆不共享的情况?协程知道吗?现在有100个进程,一个进程有10个线程,那么如果方法栈不共享的话是不是会有1000个方法栈,从协程的角度讲一下会有这种情况吗?讲一下为什么要三握手?http2.0和3.0的区别?http2.0和1.0的区别?讲一下Java目前版本的GC的一个过程?Redis和Mysql的区别?Redis是怎么更新的?Redis的数据如果删除失败了怎么解决?(从流程上解决)慢查询怎么找?讲一下之前实习的查询优化怎么实现的?讲一下具体怎么找到慢查询的?RESTFUL API的特点?(回答了域名是什么样的就写了什么)1t个整型数据怎么找中位数?(提示从快排的角度)算法题:LRU连续子数和答案:### **1. 进程和线程的区别?**进程是系统资源分配的最小单位,而线程是程序执行的最小单位。一个进程可以包含多个线程,线程之间共享进程的资源,比如内存空间、文件描述符等,而不同进程之间资源隔离,通信需要通过进程间通信机制。---### **2. 为什么线程会比进程快?**因为线程间切换的开销小,共享资源多,比如内存空间无需重新分配,而进程切换涉及到上下文切换、内存空间的重新加载等,代价更大。---### **3. 进程中哪些资源是不共享的?共享的呢?**不共享的有:内存地址空间、堆栈、全局变量等。共享的有:代码段、只读数据段、内核资源(如打开的文件、信号处理器)。---### **4. 线程中哪些资源是不共享的?共享的呢?**不共享的有:线程自己的栈空间、程序计数器、寄存器上下文。共享的有:进程的内存空间、文件描述符、全局变量、静态变量等。---### **5. 为什么堆不共享,讲一下堆不共享的情况?**其实堆在**线程间是共享的**,因为多个线程可以访问进程的堆区数据。但在**多进程中堆是不共享的**,每个进程有独立的虚拟地址空间,堆也各自分配,不会共享,除非通过共享内存机制显式实现。---### **6. 协程知道吗?**协程是一种用户态的轻量级线程,不依赖操作系统调度,由用户控制上下文切换。相比线程更轻,适用于大量并发但不需要多核并行的场景,比如高并发 IO 操作。---### **7. 有100个进程,每个进程10个线程,如果方法栈不共享,是不是有1000个方法栈?从协程角度讲有这种情况吗?**是的,如果线程不共享栈,那么确实会有1000个独立的栈。协程也是一样,每个协程也需要单独的栈空间,尽管更小,常见是几 KB,所以如果用协程实现相同数量,也会有近似数量的栈,只是代价更小。---### **8. 为什么要三次握手?**三次握手是为了确保双方都有收发能力:- 第一次客户端发起连接(SYN),- 第二次服务端确认并回应(SYN+ACK),- 第三次客户端再确认(ACK)。        如果没有第三次,服务端无法确认客户端是否能正常接收数据。    ---### **9. HTTP2.0和3.0的区别?**HTTP/2 使用 TCP,多路复用减少了 TCP 连接数,但仍受 TCP 队头阻塞影响;HTTP/3 基于 QUIC 协议,使用 UDP,解决了 TCP 队头阻塞问题,同时提升了连接恢复和握手效率。---### **10. HTTP2.0和1.0的区别?**HTTP/1.0 每次请求都要新建连接;HTTP/2 引入了多路复用、头部压缩、服务器推送等特性,提高了性能,且可以复用同一个 TCP 连接处理多个请求。---### **11. Java 当前版本的 GC 过程?**以 G1 GC 为例,它将堆划分为多个 Region,分代管理。先在年轻代进行 Minor GC,把对象晋升到老年代;当老年代空间不足时进行 Mixed GC,回收部分老年代;G1 的目标是低延迟,使用并发标记、并发清理等方式减少 STW 时间。---### **12. Redis 和 MySQL 的区别?**Redis 是内存数据库,读写速度快,适合缓存、排行榜等场景;MySQL 是磁盘数据库,支持复杂查询、事务等,适合数据存储场景。Redis 通常作为 MySQL 的补充,不是替代。---### **13. Redis 是怎么更新的?**通常使用 **写穿** 或 **写回** 策略。- 写穿是:写数据库后,主动更新或删除 Redis 缓存;- 写回是:先写 Redis,异步同步到数据库(一般需要消息队列保证最终一致性)。---### **14. Redis 的数据如果删除失败了怎么解决?(从流程上解决)**可以用 **延迟双删策略**:第一次删除 Redis 缓存 → 更新数据库 → 延迟一段时间后再次删除 Redis,防止并发请求中缓存被旧数据污染。同时可以通过消息队列或异步任务补偿失败的缓存删除。---### **15. 慢查询怎么找?**- 对 MySQL,可以开启 `slow_query_log`,设定阈值,日志中就能找到执行时间较长的 SQL。- 也可以用 `EXPLAIN` 或 `SHOW PROFILE` 分析执行计划,找出瓶颈。- 在 Redis 中可以使用慢查询日志 `slowlog` 命令查看。---### **16. 实习中查询优化怎么实现的?**我通过 SQL 优化 + 索引优化 + 缓存设计三方面入手:比如原来使用 `LIKE '%keyword%'` 模糊查询,改为分词索引提高命中;并对常用查询加入缓存,如 Redis + 本地缓存双层缓存机制。---### **17. 具体怎么找到慢查询的?**在 MySQL 中打开 `slow_query_log`,通过 `mysqldumpslow` 工具整理日志;配合监控工具(如阿里云 DMS、Prometheus + Grafana)定位慢 SQL,再用 `EXPLAIN` 看是否走索引,有没有全表扫描。---### **18. RESTful API 的特点?**- 使用统一的 URI 命名资源(如 `/users/123`);- 使用 HTTP 方法表达行为(GET、POST、PUT、DELETE);- 无状态性,服务端不存客户端状态;- 可缓存,提高性能;- 结构清晰,易于维护和扩展。---### **19. 1TB 整型数据怎么找中位数?(提示快排)**1TB 数据无法一次性放进内存。可以使用**外部排序算法**,或者基于**快速选择算法(QuickSelect)**的思想,通过分区,把比 pivot 小和大的数分别归类,类似快排的 partition 过程,只递归中位数所在的分区,直到找到目标位置。时间复杂度期望是 O(n)。
查看22道真题和解析
点赞 评论 收藏
分享
评论
5
51
分享

创作者周榜

更多
牛客网
牛客企业服务