腾讯后端Java岗社招面经

一面:

1、redis有没有用过,常用的数据结构以及在业务中使用的场景,redishash怎么实现的?rehash过程讲一下;

2、JavaHashMaprehash有什么区别?

3、redis cluster有没有了解过,怎么做到高可用的?

4、redis的持久化机制,为什么不能用redis做专门的持久化数据库存储?

5、了不了解tcp/udp,说下两者的定义;

6、tcp为什么要三次握手和四次挥手?

7、tcp怎么保证有序传输的?讲下tcp的快速重传和拥塞机制;

8、知不知道time_wait状态,这个状态出现在什么地方,有什么用?(参考quic

9、知道udp是不可靠的传输,如果你来设计一个基于udp差不多可靠的算法,怎么设计?

10、httphttps有啥区别?说下https解决了什么问题,怎么解决的?说下https的握手过程。

11、看你项目里面用了etcd,讲解下etcd干什么用的,怎么保证高可用和一致性?

12、既然你提到了raft算法,讲下raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?

13、有没有了解过paxoszookeeperzab算法,他们之前有啥区别?

14、你们后端用什么数据库做持久化的?有没有用到分库分表,怎么做的?

15、索引的常见实现方式有哪些,有哪些区别?

16、MySQL的存储引擎有哪些,有哪些区别?

17、InnoDB使用的是什么方式实现索引,怎么实现的?

18、说下聚簇索引和非聚簇索引的区别;

19、有没有了解过协程?说下协程和线程的区别?

20、算法题:数组中的重复数字


二面:

1、主要针对自己最熟悉的项目,画出项目的架构图,主要的数据表结构,项目中使用到的技术点,项目的总峰值qps,时延,以及有没有分析过时延出现的耗时分别出现在什么地方,项目有什么可以改进的地方吗?

2、如果请求出现问题没有响应,如何定位问题,说下思路?

3、tcp 粘包问题怎么处理?

4、问了下缓存更新的模式,以及会出现的问题和应对思路?

5、除了公司项目之外,业务有没有研究过知名项目或做出过贡献?


三面:

1、go程和线程有什么区别?

答:起一个go程大概只需要4kb的内存,起一个Java线程需要1.5MB的内存;go程的调度在用户态非常轻量,Java线程的切换成本比较高。

2、接着问为什么成本比较高?

答:因为Java线程的调度需要在用户态和内核态切换所以成本高

3、为什么在用户态和内核态之间切换调度成本比较高?

答:简单说了下内核态和用户态的定义

4、项目过程中遇到的最大的挑战,以及时怎么解决的?

5、服务器CPU 100%怎么定位?

6、最后问了一个系统设计题目(朋友圈的设计),白板上面画出系统的架构图,主要的表结构和讲解主要的业务流程,如果用户变多流量变大,架构将怎么扩展,怎样应对?

#腾讯##社招##Java工程师##面经#
全部评论
这是没问任何java相关的问题么。。。
1 回复
分享
发布于 2020-07-09 01:36
大佬几年经验呀
1 回复
分享
发布于 2020-07-09 13:01
阅文集团
校招火热招聘中
官网直投
感觉全是基础知识,不怎么考算法...
点赞 回复
分享
发布于 2020-07-25 10:25
这,没看标题都不知道是在面Java,果然很腾讯
点赞 回复
分享
发布于 2020-07-25 17:47

相关推荐

9 105 评论
分享
牛客网
牛客企业服务