腾讯 两次二面给我的经验

本人Java 选手,BG 双非本985硕士无实习,秋招面试腾讯两次,一次提前批一次秋招(秋招无笔试,感觉和提前批区别不大),均挂在了二面。

1. 提前批-TEG云架平(C++)

1.1 一面

因为自己是主要使用Java,所以面试的内容主要是还是以计算机网络和操作系统等基础知识为主(一面的内容主要还是计网,我猜二面肯定会多考操作系统,楼主狠狠的押题住了),中间穿插了一些场景题,无项目问题。

这里楼主印象比较深刻的场景题就是:有n个节点的数据需要同步,请设计一个同步算法,并分析时间复杂度。

楼主一开始以为得用一致性哈希,最后发现直接用已同步的节点与其他未同步节点同步就行,时间复杂度是logN的。

编程题:斐波那契数列。

这里主要考察了这个算法的优化问题,如何平衡时间与空间,楼主很行。

总共面试时长应该不到1h。

1.2 二面:

一面秒过,不到一周的时间就约二面了,看来楼主一面表现还可以。

面试的时间比较久远了,主体的面试内容楼主记不太清了,唯有一道场景题给楼主印象深刻,场景题的描述可能有误哈

场景题:存在客户端与服务端的post,也存在服务节点之间的post,如何保证数据的一致性。

比如A为客户端,B、C为服务端节点,A请求B要求设置value=1,但是由于网络故障这个请求暂时没有收到,此时C请求B设置节点value=2,此时网络恢复导致value=1,如何保证数据的一致性(这里可能是顺序一致性)。

我秒答使用序列号机制保证这种顺序一致性,比较消息的序列号的来判定是否执行value的修改。面试官又问,如何确定这个初始的序列号呢,楼主懵了。面试官暗示我想想TCP的三次握手,楼主太笨了没想出来。最后面试官给了答案,可以在请求之前约定初始的序列号,比如A给B发送消息说setNum1中的序列号都可以,然后B收到消息后从setNum1中选取B也允许的序列号返回作为初始的序列号(楼主是真想不到啊)。

编程题:从n个正整数中取k个数,使得k个数之和小于s,求取值的方案数。

楼主第一眼的思路是排序加滑动窗口,但这样连续取的话肯定是不满足的,然后这题也不让用DFS,楼主懵了。

然后面试说给你简化一下吧,你就求k个数之和等于s就行,用滑动窗口做。(我勒个去,纯纯误人子弟啊)

然后楼主按照面试官的说法写了一份代码提交了。

后来和同学讨论,说用dp来做,合理,不知道为啥面试官不提醒我用DP呢,反而还误导我。

2. 秋招-CDG金融科技(Java)

2.1 一面

来吧我的Java主战场(隔了一周多,把楼主捞起来秋招了),楼主中途郁郁了,也没有面试,早就忘光光啦。

面试内容主要以Java为主,408的内容很少,没啥印象了。

补充:想起来了,面试官狠狠的问了我Java反射,它优缺点啥的,太痛苦了,难怪我想不起来了。

编程题:最长无重复字串

2.2 二面

痛,太痛了!

二面极其Open,就三个题。

场景提1:如何设计购物车

这个题主要考察的对join表的处理,因为作为一个现代化的购物车,你需要显示库存,降价,商铺名称等信息,其中会涉及到一些联表。

题主答的是冷热分离,然后热数据用缓存,分别使用推拉的方式处理冷热缓存数据。

场景题2:mq的设计

我的天。

哥们儿只知道kafka 零拷贝这套,还有其他分布式的一些东西,瞎答了一波。(之前也看过b站的小白debug讲这些设计,但都光光了)

场景题3:转账

A给B转账,A和B位于两个节点上,如保证数据一致性。

盲想就是加锁,但效果肯定差,有点懵。

因为涉及到两个节点,所以是分布式事务,使用mysql的MVCC肯定保障不了。

楼主想到了TCC这种框架,面试官让我写了下伪代码,但楼主太沉迷加锁了。

后来面试官说让余额分为固定余额和流动余额,你只要锁住流动余额就行,这样就不会影响到用于查询的固定余额了。(ps:还是经验不足啊)

无编程题,面试完秒挂。

面试官有点严肃,楼主狠狠的给了差评。

3. 结语

面试腾讯感觉和字节很像,很重视深度,楼主需要再历练一下了,多看看项目。

#互联网##秋招##面经腾讯美团百度#
全部评论
本人最近还有一份百度提前批的面经一二面面经,想看的人多的话楼主抽时间更新一下
4 回复 分享
发布于 2024-08-28 20:36 四川
m
1 回复 分享
发布于 2024-08-28 23:54 黑龙江
详细
1 回复 分享
发布于 2024-08-28 19:33 北京
大佬java做的是哪个项目,能推荐一下吗
点赞 回复 分享
发布于 2024-09-30 15:30 安徽
场景题确实难顶,我直接裂开
点赞 回复 分享
发布于 2024-09-18 17:57 安徽
大佬,固定余额流动余额这个什么意思?具体怎么实现的啊?
点赞 回复 分享
发布于 2024-09-04 16:39 重庆
腾讯java后端是真难面,各种拷打
点赞 回复 分享
发布于 2024-09-02 23:38 江苏
cdg二面应该和我当时暑期实习cdg三面是一个面试官 也是考我mq 考完mq考转账 也是要我写伪代码 可我当时连分布式事务都没学过
点赞 回复 分享
发布于 2024-08-30 10:43 广东
m一下 线性一致性那个题感觉可以参考raft设计, C如果给B发消息,可以看成C收到某个客户端请求然后路由给B,这样这个系统可以看成raft,让CB跑一个raft,这样就可以用term机制保证来自A的旧数据会被无数
点赞 回复 分享
发布于 2024-08-29 23:21 四川
可爱捏 很有帮助
点赞 回复 分享
发布于 2024-08-28 18:53 安徽

相关推荐

面试官人很好,态度和蔼可亲,没答出来时也会引导你去思考。由于是晚上面的,导致我白天一天都有点紧张,面的时候状态也不是很好,正常可能面试官提问完应该思考几秒再答,而我就像抢答一样一口气把所有会的都说出来,这样就导致逻辑比较混乱,东一句西一句的。首先是自我介绍,先把会的技术大致讲一下,由于我八股背的多所以着重讲了一下,Java,go,jvm,MySQL,Redis,计网,操作系统这些,然后一小部分闲聊,然后先问了一下项目,面试官问我这个项目是否落实之类的,直接坦言说是写的练手的,包括之前也写过IM通讯,外卖之类的。然后面试官就把提问的重点放在了八股上。先问了Java:类加载器(答:3种+自定义类加载器、tomcat、原因+双亲委派+好处)JVM参数(答:xmx,xms,newsize这些,问我是如何设定的,我回答是把内存分一半给堆,再把堆分一半给新生代,这方面确实不太了解)然后问了一下并发相关的:线程池(答:线程池的7个参数(忘了线程工厂和阻塞时间了),3个重要参数,还有线程如何启用,为什么要设计最大线程数之类的,提到Java栈默认分配1MB运行时不可以更改)AQS(答:先讲clh是自旋锁+list,然后是AQS在这个基础上做的两个优化,然后举了一下reentrantlock根据state如何获取资源)CAS(答:使用三个字段,aba问题,然后将通常搭配自旋锁实现,面试官问通常会自旋多少次,这个不太了解,答的100,然后问100次大概多少秒,回答微秒级,然后面试官讲了一下怎么做资源可能没用完,意识到可能还需要进行阻塞操作)然后考虑一下Linux命令(top,ps,如何使用管道符过滤线程和使用Linux启动线程没答出来)然后问Redis:持久化机制(答:三种aof,rdb,混合,aof的三个参数刷盘策略,rdb以快照保存,使用bgsave会使用子线程来保存不会阻塞,而aof虽然会阻塞但是只在写完数据后追加一条命令,不会太影响,然后是他俩的优缺点,还有混合是怎么保存数据的)集群模式(答:三种,主从复制到缺点再到哨兵机制,正常使用三个哨兵互相监督,主节点挂了投票选主哨兵然后选主节点,然后额外讲一下脑裂的问题,主节点进行数据更新然后把命令写入aof来同步从节点,最后cluster集群,如何实现,使用16383个哈希槽(艹答成16384了),先根据哈希码取余,再根据节点数取余决定放在哪个节点上,然后问了一下我会怎么选集群模式,首先是cluster的问题,会让管道操作之类的失效,然后哨兵会导致整个集群结构变得复杂,使用小项目可能会考虑哨兵,大的考虑cluster,然后考了一下cluster如果一个节点挂了怎么办,根据节点数重新取余然后数据转移,面试官说这么转移比较慢,有没有别的办法,我隐约记得使用一个类似环形数组的方式,想不起来了)然后考了一下MySQL的b+树(这方面的知识点太多了,导致我什么都想讲逻辑就比较乱,讲了一下聚簇索引,树的叶子节点对应着一张页16KB,MySQL有一个区的概念,把这些页放在同一个区中,这样叶子节点的双向链表遍历时速度更快,然后b+树的扇出比较大(非常二,说成扇度之类的,面试官以为说的是扇区)这样层数就比较小,一行1kb数据的话3层可以放心2000w数据)其他的暂时想不起来了算法是lru,面试官问要不要提示,我说写个,然后写了10分钟左右,说大概写好了,但是面试官指出了2个小错误,第一个马上就改回来了,第二个一直没看出来(大脑这时候已经停止工作了)反问:问学习建议,说根据实际的项目进行深入,考虑应该怎么做,还问了一下组里面是做Java的吗?面试官说他是做go的,组里什么语言都有,语言影响不大,连忙补充了一句我对go的底层有深入源码的学习)结束。总体感觉答得不太好,没有太体现出深度,细节也不够全面。
下一个更好呗:佬,我投完云智一直没消息,多久约的一面啊
查看14道真题和解析
点赞 评论 收藏
分享
评论
32
195
分享

创作者周榜

更多
牛客网
牛客企业服务