首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
小海豹
北京牛客科技有限公司_招聘者
发布于北京
关注
已关注
取消关注
你这记忆力也太强了吧
@匿名牛油:
字节面经(3+3)
去年秋招期间,因为没有实习经历,结果十分惨淡,收到的面试寥寥无几,基本都是简历挂。于是在8月份转变了思路,直接投字节实习,果真收到了面试,第一次面字节,闯到了第三轮技术面,被挂了。后面被字节另外一个部门捞了,最终顺利拿到了字节offer,也是凭借字节的这份实习经历,在今年2月敲开了几家大厂的大门,获得了面试机会。当时记录了一些面经,想发出来回馈给牛客,毕竟我的校招之路都有牛客的陪伴,牛客记录了我求职过程中的喜怒哀乐。抖音开放平台一面(8.17)50min:1 自我介绍(详细介绍项目)2 项目中Redis怎么用的(缓存,分布式锁)3 Redis分布式锁的具体用法,如何实现的,加锁(加唯一标识,设置过期时间,保证原子性)具体命令,解锁(读取,判断和del),还知道可以用哪些来实现分布式锁4 Rocketmq的事务消息的执行流程,详细说一下5 项目中如何解决消息重复消费的,具体说一下6 项目中的令牌大闸如何实现的,令牌桶算法7 还知道哪些限流算法(说了漏桶算法),漏桶算法和令牌桶算法的区别?8 项目为什么选令牌桶算法不选漏桶算法?9 令牌桶算法是自己实现的还是用的组件,令牌桶算法如何保证不会单击TPS在某一刻超出系统承受能力(没答出来)10 Redis有哪些优势,为什么它应用这么广泛,为什么适合做缓存11 Redis数据类型,经典的应用场景?12 Redis的有序集合的底层实现原理(说了跳表,还不够,面试官还问了另外一种实现,没答出来)13 Redis的哈希扩容流程(说了渐进式reHash,追问为什么要这么用)14 Redis的持久化机制(AOF和RDB,区别,应用场景,AOF的缺点,RDB的缺点)15 MySQL的两阶段提交(具体讲解,如果中间几个阶段分别崩溃怎么办)16 redo log和bin log的用途,区别17 MySQL索引数据结构,为什么不用二叉查找树,为什么不用B树,B+树和B树的区别18 事务的持久性如何保证(redo log 和bin log)19 事务的隔离性如何保证(MVCC+锁,分别讲实现原理,还有间隙锁)20 MVCC的如何判断行记录对某一个事务是否可见21 MVCC在四种隔离级别中如何实现(讲了只能在RC和RR下实现,追问RC和RR两者实现的区别)22 RR解决了什么问题,有没有解决幻读,MySQL默认隔离级别是什么,各大企业通常采用什么隔离级别,为什么23 HTTPS 的加密过程24 Java垃圾回收(说了可达性分析算法,分代回收,标记复制,标记整理和标记清除…)25 LC209 (ACM模式)26 反问抖音开放平台二面(8.22) 75min:1 项目中的技术难点,怎么解决?2 项目中使用Redis分布式锁就可以解决超卖问题吗?3 Redis分布式锁如何实现(说了三个点,设置过期时间,保证设置锁和过期时间的原子性,保证锁的值的唯一性),释放锁呢(先判断,再释放,同样需要保证原子性)4 这样设置分布式锁有什么问题吗(单个Redis宕机,则锁失效。为了提升锁的可靠性,Redis集群部署分布式锁,RedLock算法)5 Redis的扩容过程(reHash详细流程),Redis进行reHash时,客户端对Redis进行读操作,此时查找的流程是怎样的(再次多看,两次面试都问到了,第一次没回答好,只知道是渐近式reHash,具体过程不知道。应该是一面面试官知道我在糊弄,写在面评上来了,二面面试官上来就问。)6 MySQL前缀索引,最左匹配原则,联合索引底层怎么放的,还举了几个例子考察我会不会走索引7 Kafka的 reBalance, raft算法(不会,崩),consumer和partition的对应关系(单播消息,多播消息)8 Kafka的高可靠性如何保证(说了副本冗余机制,详细介绍broke和partition中leader与follower之间的关系)9 Kafka的滚动策略(完全不知道是什么,崩),面试官说看得出来我有在认真准备面试,但是有些点还是没有覆盖到10 Kafka 的零拷贝,详细说一下(从操作系统层面说)11 MySQL的关键字 in 和 or 的区别(没说好,真的不知道怎么说,感觉底层不同,从走索引角度?被面试官diss说不清楚,崩)in 与 or 的区别主要为执行效率方面: in 或 or 在字段有添加索引的情况下,查询很快,两者查询速度没有什么区别; in 或 or 在字段没有添加索引的情况下,所连接的字段越多(1 or 2 or 3 or 4 or …),or 比 in 的查询效率低很多 SELECT * FROM tbName WHERE KEY IN (a1, a2, ...... , an); in 先将 a1, a2, …, an 变成二叉搜索树,用过二叉树查找,时间复杂度为O(LogN); SELECT * FROM tbName WHERE KEY = a1 OR KEY = a2 OR ...... OR KEY = an;or 是从 a1 匹配,匹配失败,去匹配 a2,直到匹配成功或者一个都匹配不上,时间复杂度是 O(N); 12 MySQL为什么要用redo log?(缓冲区刷盘不是每次一点改动就立即执行的,为了执行性能高,会将多次改动结果一起刷盘,为了防止还没刷盘时MySQL宕机导致数据丢失,所以用了redo log,将改动同时写在redo log)追问redo log也是磁盘中的文件,也要写盘,为什么性能会提高(顺序写和随机写)追问为什么不用bin log来实现崩溃恢复(说了redo log的环形结构,刷盘指针和写日志的指针记录位置)13 如何设置一个秒杀系统(说了Redis缓存预热库存,在Redis中扣减库存,分布式锁保证查库存和扣减库存的原子性,同时用分布式事务消息保证MySQL与Redis的库存一致性,限流算法,页面静态化减轻服务器压力)14 令牌桶算法,还知道哪些限流算法,详细说下,两种算法的区别和适用场景15 给我刚刚设计的秒杀系统加点料,秒杀一个商品,要求立即返回商品编号,而不是简单扣减库存(这个真的崩溃,因为我设置的秒杀系统扣减MySQL库存是异步执行的,现在要求返回秒杀成功后立即给用户一个反馈秒杀的商品的编号是多少,这就成了同步,但又要保证原来的异步的性能,提到把商品编号加入到Redis,说了对同步调用和异步调用的思考)追问具体如何设置 到Redis中(回答用Redis的hash数据类型,给请求编码,requestId,作为redis的hash类型的键,商品编号作为值,完全乱扯。。)再次被追问存到Redis中如何解决 请求的公平性(请求先到先秒杀成功)(不会,被面试官diss我紧张过度)16 算法 二叉树路径和(自己建树)(秒了) 实现千位分隔符(这边因为紧张,加上对字符串的插入和删除的api不熟悉,卡在字符串那里了,面试官让我换一个思路,不一定要用字符串) 然后慌了,没搞出来,被diss脑筋太死了,重要的是解决问题,没限制时间复杂度,然后跟我说可以用数组,队列都行。然后扯了好大一堆,就因为字符串API不熟悉这么点小问题就把我拦住了,没有解决问题的能力,其实有很多思路。重要的是解决问题,方法不计。。。然后这边心态是真的彻底崩了。面试官说了很多安慰的话,看得出来我是紧张过度才没写出来easy题目,从我前一道算法题看得出我写代码速度没问题。。。17 最近看什么书(不一定要是技术类),具体讲了什么(因为某些原因答得稀烂,然后被面试官教育了一翻,说这题答得不行,主要为了考察沟通能力和记忆力,我连最近看的书的内容都不能很好的讲出来。然后谈看这些书是出于兴趣,但总要留下些什么)18 反问(问了面试官两个问题,面试官很耐心的解答,收获颇多)目前为止收获最大的一场面试,对面试官佩服至极,真的是技术大牛。还学到了很多方法论。抖音开放平台三面(8.25)55min(三面挂)问了40分钟项目。。。把项目问了个底朝天。。。。1 问项目背景,是不是自己练手做的,是自己一个人实现的后端吗,时间如何安排的,项目部署过吗,具体做了些什么2 扣减库存时MySQL行锁遇到过吗,没优化前QPS是多少?3 用的什么压测工具?压的时候考虑的是单个商品的扣减库存还是整个系统的?为什么不压测整个系统的(属实没考虑到)4 你觉得单商品QPS达到多少是可以达到要求,你做项目前预期是多少?5 你这个秒杀的TPS是指什么,是指从接口层面压测然后扣减Redis库存和Rocketmq发消息扣减库存这一系列流程吗?6 我理解你这个TPS到了这么多,Rocketmq端肯定是会有消息积压的,你这个消息积压量大概是多少(没考虑到,崩)?7 你知道消息队列会有消息积压的问题吗(知道,消费消息的速度赶不上生产消息的速度)RocketMQ单机也可支持亿级的消息积压能力,500个线程,1200次循环,60万条消息,即使消费者消费消息过慢,也不会产生消息积压问题。 8 Redis中扣减库存很快,而MySQL扣减库存很慢,你知道这会产生消息积压的问题吧,你遇到会如何解决呢?(考虑并发度,前端限流)追问 除了前端限流之外,消费端能做什么呢,写MySQL还是很慢,有什么其他的方法吗(乱说一弃,崩)9 在优化之前是用MySQL扣减库存吧,那个sql如何写扣减保证不会超卖 (先查再扣,保证事务,写sql)追问还有其他方法吗,可以不用合并这两个操作为一个事务吗,如何写sql?10 你如何对项目进行优化(答了两个点:1 把扣减库存和回补库存操作 改成了 查询库存和扣减库存,并用Redis分布式锁保证原子性) 2 在消费者端实现消息幂等,防止消息被重复消费导致MySQL和Redis的库存不一致。追问具体流程,说了很久(看样子面试官听明白了)11 那按照你说的你本地事务在Redis中扣减库存时,还是会涉及MySQL写操作(插入流水号),那性能又是如何提升的呢?你觉得会和你原来扣减库存时遇到行锁一样有瓶颈吗(不会)?为什么呢?(流水号的主键是uuid,是可以多线程插入行记录,而原来用行锁扣减库存只能单线程执行)12 你觉得你现在做了这么多优化,还有哪些点未来是可以继续优化的(我都已经说了两个优化的点了,还让我继续优化。)(说了下单未支付可以考虑回补库存,延时消息实现)13 Rocketmq延时消息原理?(不会,寄)14 项目中有遇到啥问题,怎么排查的?(扯了很多,被追问很多)15 你项目中用到了分布式锁,分布式事务消息,看你还解决了分布式session,那你说说分布式id的生成吧(真的没了解,只知道听说过这个东西)16 项目用的java是吧,SpringBoot开发的好处是什么,你对比一下Spring说说看?17 SpringBoot自动装配?SpringBoot starter 如何实现?SpringBoot源码,Spring源码?(没看过)那你看过哪些源码?(JUC.lock的源码)18 Java的可重入锁是怎么实现的,你从源码角度说一下,怎么就可重入了19 Java中多个线程如何通信?(synchronized,wait和notify搭配使用,lock,await和notifyAll搭配使用。需要详细展开讲讲)20 Thread类中有三个方法join,yiled和sleep,说说这三个方法的区别?21 sleep和Object的wait的区别(从synchronized的角度回答,wait只能和它搭配使用,并且调用后释放锁,sleep则不会释放锁)22 Java线程池?ThreadPoolExcutor? 线程池的执行流程?23 你项目中用了很多MQ,如何保证不会丢失消息(生产者:事务消息;broker:同步刷盘,主从部署集群;consumer:至少一次消费原则,消费失败重试)24 可是同步刷盘性能很低呀,那怎么保证效率呢,你觉得各大公司怎么做的?25 长短链接问题(如何把长链接变成短链接,但访问的资源不变,后端如何做?),寄26 你觉得你做了这两个的项目收获了什么,获得了什么成长27 你觉得你这个项目中有没有做的不好的地方呢?28 个人职业规划?29 设计模式了解哪些(单例,模板方法模式)30 详细说下单例模式(饿汉式,懒汉式,线程安全和内存浪费问题)31 反问 ,你有什么想了解的吗?tiktok直播一面(9.6 75min)1 介绍项目,为什么用分布式锁,这样做会有什么问题(不如直接使用lua脚本解决原子性问题)2 为什么前一个项目用Kafka,后一个项目用Rocketmq3 如何保证Redis和MySQL数据的一致性,事务消息的具体流程是什么4 为什么要用令牌桶算法,你还知道哪些限流算法,区别5 如果给你一个分布式系统,要求你限流,你怎么做,如何优化6 Java线程池的工作原理7 Java线程池是如何销毁线程的,如果是你,你怎么设计8 线程池的好处,为什么要使用线程池9 Java垃圾回收,如何解决跨代引用问题的(忘了),如果让你设计,你如何做10 Java中的锁说一下,lock和synchronized的使用方面的区别,lock和synchronized在锁的灵活性方面的区别11 volatile关键字详细说一下12 在网址中输入url,说下过程,各层都发生了什么,详细点13 常见排序算法的时间复杂度说一下14 归并排序复杂度为什么是nlogn,让你合并多个大小为n的数组,你如何做(具体点),逐个合并会有什么问题15 项目中压测如何做的,秒杀流程是怎样的16 项目中整个限流过程是怎样的17 如果你没有库存信息,你如何设置令牌的初值,让你的QPS和令牌数完美搭配起来18 java线程的资源都有哪些,线程栈的大小大致在多少19 有没有遇到过栈溢出的异常,为什么无限递归会造成栈溢出20 算法题:树的子结构 21 代码题:两个线程交替打印A和Btiktok直播二面 9.9 45min1 介绍数据库索引2 为什么把二叉查找树变成多路平衡查找树就能减少磁盘IO?为什么树的高度决定了磁盘的IO次数 ?如果查找某一个数据,用二叉查找树和用B+树的时间复杂度分别是多少?3 B+树的叶子结点的默认大小是多少?如果把B树的非叶子结点只存放指针,那B树是不是就和B+树一样了呢4 除了二叉树,B+树,B树这些索引,还有什么常见的存储数据结构适合做索引呢?5 为什么InnoDB不用哈希做索引,用哈希和用B+树有什么区别?6 Redis里面有序集合用的索引?介绍一下跳跃表,与哈希的区别?7 MySQL事务隔离级别有哪些,会产生哪些问题,MySQL默认的隔离级别是什么8 MySQL如何实现可重复读?MVCC的底层原理?9 看你用过Rocketmq,也用过Kafka,那你说一下这两者不一样的地方?或者设计上有哪些不一样?10 为什么你认为Rocketmq的可靠性比Kafka好?(跟面试掰扯很久,被驳回)11 Rocketmq消费消息失败了之后,是如何保证消息不丢失的呢12 那kafka也可以按照Rocketmq这样做呀,为什么kafka可靠性就不如Rocketmq高呢13 Kafka和Rocketmq除了你说的这些区别,还有什么区别?(底层存储消息的方式)14 说说两者底层存储消息方式的区别(Rocketmq把所有消息存到一个文件中,每个队列有索引标注,kafka的消息是分区存放)15 为什么这两者要这么设计(Rocketmq磁盘顺序写,Kafka磁盘随机写,前者性能更高)被追问Rcoketmq虽然是顺序写,但是也带来了随机读的问题,为什么这么设计16 Redis如何实现高可用和高可靠的?17 Redis的主从复制是同步的还是异步的?异步和同步的优缺点?18 了解go吗,说说协程,为什么要用协程?19 为什么多线程访问共享资源需要加锁处理?20 说说可见性,为什么一个线程看不到另外一个线程的修改21 volatile 如何实现可见性呢?22 让你设计一个任务调度器的类,add一个task,指定这个task的执行时间,可以add很多任务,但每个task执行的时间又各不相同,你如何实现,用什么数据结构?(优先队列,分数为时间戳,队头为最先执行的任务,队尾是最后执行的任务)23 优先队列的实现原理24 算法题:二叉树的完全性检验tiktok直播三面(9.20)主要问题1 课程相关2 项目相关3 设计相关 点赞问题引出对相关组件的应用能力,对问题的解决方案,具体设计用Redis的set和string分别存用户id和点赞总数,达成显示点赞总数的目的,同时set可以保证点赞只能一次,重复点赞会取消,还能显示点赞人的信息。为什么用Redis,出于性能考虑,并且天然的数据结构很适合应用。string和set是两个操作,引出原子性问题,redis如何保证原子性?分布式锁和lua脚本。问Redis的热key问题,本地缓存(hashmap等)解决,问削峰限流问题,引出消息队列解决。问验证码存储问题,引出session,采用Redis优化解决。4 问前面一二轮面试的复盘,再给次机会再答一次5 算法题 大数相加(字符串可以是负整数,也可以是正整数,不能用API直接将字符串转成整数)
点赞 109
评论 27
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-18 16:30
已编辑
湖南科技大学 C++
腾讯云智一面
昨晚刚笔试完,今早就收到了面试,云智效率还是挺高的1、项目拷打半小时 (问的很细,项目的话一个OA平台一个仿飞秋局域网通信软件)然后问点八股2、pool,select和epoll的区别,他们底层上的区别和应用上的区别3、你在网络编程中用过哪些系统调用4、进程间通信方式有哪些,应用在哪些方面5、进程和线程的区别然后问点日常,兴趣爱好,为什么计算机,面过哪些公司等等反问:1、对我的评价2、详细业务3、口头问这次过了吗面试官挺好的,但是感到自己答的一般,面试官也说了有些描述不是很清楚,表达还要加强感觉要寄
查看7道真题和解析
点赞
评论
收藏
分享
07-15 22:26
友塔游戏_HR(准入职员工)
友塔游戏内推
友塔游戏 游戏开发工程师 一面面经2024届秋招 友塔游戏 游戏开发工程师 30min1. 题目:有n根棍子,棍子i的长度为ai。想要从中选出三根棍子组成周长尽可能长的三角形。请输出最大的周长,若无法组成三角形则输出。2. 题目:一个环,有n个点(编号 0 ~ n-1 ), 问从0点出发,经过k步回到原点(0点)有多少种方法 ?3. 如果有一个进程占用内存 500M,使用 fork,它的内存占用?(写时复制)4. MySQL了解吗?比如索引?(不太了解,只会写一些 SQL 语句)5. 查看内存的占用情况? top6. 你在 vivo 排查,解决问题是什么途径,有人指导吗?7. 怎么查看 tcp...
友塔游戏一面128人在聊
点赞
评论
收藏
分享
05-21 16:15
门头沟学院 算法工程师
原来大佬是这样的
别人的起点,感觉已经是自己的终点了,无敌羡慕
Yki_:
你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞
评论
收藏
分享
06-23 11:28
门头沟学院 Java
这一块儿/.
这一块儿/.
牛客91966197...:
也有可能是点拒绝的时候自动弹的话术
点赞
评论
收藏
分享
07-15 11:39
门头沟学院 Java
秋招第一个offer,求问意向书会被鸽吗?
实习四个月通过直通卡拿了东子做保底这下可以安心准备其他的了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
腾讯提前批后台开发凉经teg
8828
2
...
我和妈妈讲以后我可能给不了她一个月1500
7858
3
...
滴滴提前批一面
6490
4
...
滴滴提前批一面秒挂面经
6391
5
...
后端实习到底该干什么啊
6385
6
...
实习,别太较真
4963
7
...
王侯将相宁有种乎!
4793
8
...
感觉跟做梦一样
3310
9
...
给公司上一课
3013
10
...
听不懂需求把组长逼急了……😭
2930
创作者周榜
更多
正在热议
更多
#
26届的你们有几段实习?
#
40238次浏览
455人参与
#
月薪多少能在一线城市生存
#
23090次浏览
274人参与
#
你后悔自己读研吗?
#
17823次浏览
233人参与
#
你以为的实习VS真实的实习
#
25162次浏览
233人参与
#
当下环境,你会继续卷互联网,还是看其他行业机会
#
117298次浏览
809人参与
#
双非能在秋招上岸吗?
#
221044次浏览
1169人参与
#
你认为哪些项目算烂大街?
#
16436次浏览
265人参与
#
你觉得早上几点上班合适?
#
71548次浏览
299人参与
#
打工人的工作餐日常
#
51862次浏览
406人参与
#
哪些公司真双非友好?
#
15179次浏览
81人参与
#
追觅科技求职进展汇总
#
17861次浏览
120人参与
#
机械校招之路总结
#
93622次浏览
1893人参与
#
你被哪些公司秒挂过?
#
30001次浏览
238人参与
#
找工作时的取与舍
#
82713次浏览
590人参与
#
秋招拿一个offer可以躺平吗
#
146081次浏览
940人参与
#
最难的技术面是哪家公司?
#
9114次浏览
72人参与
#
如何KTV领导
#
62443次浏览
472人参与
#
网申一定要掌握的小技巧
#
10778次浏览
66人参与
#
你觉得技术面多长时间合理?
#
98915次浏览
716人参与
#
机械人选offer,最看重什么?
#
105458次浏览
599人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务