面经分享

本人投递较晚,4月20号开始投暑期,然后就只有一个阿里 kpi 一面,三十分钟,没有参考意义。
随后到五月中旬,心情很低落。被美团买菜后端开发捞了,但是一面算法没过(个人较菜)。
boss 找投递机会,准备字节教育后端开发一面(基础还行,算法又挂了)。
经同学推荐,转客户端,投递字节飞书客户端,然后第三面挂了。
然后被腾讯 pcg 捞了,只有两面,都通过了,现在怀疑是 hr kpi,池子里都是大佬。
最终在师兄的推荐下开始字节新业务后端开发日常岗位面试,终于不是 0 offer了!

美团一面后端:

1. 自我介绍
2. 你认为你们项目的亮点在哪
3. 你说到 SpringSecurity,你是怎么学习的呢
4. Linux 了解哪些命令
5. Object 类有哪些方法,细说一下每一种
6. 用过哪些集合类,说一下 ConcurrentHashMap,说一下 ConcurrentHashMap源码在多线程下有哪些优化
7. wait() 和 sleep()区别,sleep() 使用过吗,怎么用的
8. volatile 说一下(原子性,可见行,有序性,指令重排,内存屏障,volatile 原理)
9. 线程池7大参数,原理,拒绝策略
10. GCRoot 引用对象
11. 新生代晋升到老年代过程
12. 说一下索引失效
13. 联合索引实际场景如何建立索引
14. 数据库隔离级别分别是什么,解决了什么问题
15. 脏读、幻读、不可重复读
16. MVCC说了一半,面试官打断说不需要说可见行算法,下一个问题
17. Next-key lock 提了一下,没说别的
18. linux 命令询问,chmod,什么是777,三个777分别代表什么,分别代表那个组
19. 框架,Spring IOC, 循环依赖,三级缓存

字节飞书客户端:

一面:
1. 自我介绍
2. 项目登录过程实现、SS 授权和认证过程、JWT 如何使用、如何实现表单重复提交
3. Redis 数据同步如何解决
4. AOP 怎么理解的,动态代理 JDK 和 CGLIB
5. 如何理解线程池、参数、拒绝策略、原理
6. Java 里面的锁机制,synchronized 原理、作用、锁升级,AQS原理,ReentrantLock 源码
7. 手写 DCL 线程安全方法,解释为什么需要加 volatile
8. 第 K 大,leetcode 215,使用快速选择排序 O(n)

二面:
1. 自我介绍
2. 输入 URL 访问流程
3. TLS 什么时候使用对称加密,什么时候使用非对称加密
4. 中间人攻击了解吗?(不了解)
5. 可靠传输如何优化?(类似加速网络请求)
6. DNS 缓存在代码中如何实现?
7. 网络中的二进制如何对应真实内容?(我说的粘包,但是不对,后来说表示层的功能。再后来说前后端交互使用规定的JSON格式,但是他说JSON格式在网络中也是二进制,如何在网络中体现?我就说了序列化,然后他说序列化只是一部分,后来我就不知道了,有大佬知道可以教教我哈)
8. MySQL 索引如何提高查询效率
9. 如何看SQL 语句是否使用了索引
10. 如果你设计优化器,如何优化联合索引?
11. 如何理解事务?
12. 面向对象语言的特点
13. GC如何判断回收的垃圾对象?
14. 如何判断引用计数器什么时候加1,减1?
15. 如何知道对象什么时候被引用?
16. 那什么时候GC进行回收呢?Minor GC、Full GC
17. leetcode 给一个字符串,判断最长的回文子串的长度,如何优化

三面:
1. 自我介绍
2. 十六进制转换为十进制 代码编写
3. 感觉一面二面面试官怎么样?
4. 你感觉一二面令你印象最深的题目?
5. 你还学习过哪些语言?做过哪些项目?
6. 你认为 Python 和 Java 的区别有哪些?历史、编码过程、框架方面
7. HTTP 的历史,HTTP 1.0、1.1、2.0、3.0 
8. 当前腾讯视频用到了哪些协议?
9. 设计一个缓存系统,如何在客户端保存用户的图片?缓存唤出策略、缓存的级别、缓存的存储方式(文件还是数据库,什么时候用文件,什么时候用数据库)、网络图片下载失败重试
10. 你认为你项目中印象最深刻的难题?学到了什么?
11. 你写的代码大致有多少行?

腾讯 pcg 后端:

一面:
1. 自我介绍
2. 浏览器输入 url 过程
3. MTU 和 MSS
5. 状态码详细问答 502 504 403 404 302 301 
6. UDP 如何做可靠传输
7. TCP 如何可靠传输
8. 流量控制和拥塞控制的区别
9. 考察 NGINX 如何转发,NGINX 里面包含什么
10. AOP 动态代理 项目横切日志如何做
11. IOC
12. 看过那些书
13. 如何解决慢查询
14. 12345678 单链表,从尾部到首部每 k 个反转一次,不足 k 个不用处理,返回反转后到链表 k = 3,87654312

二面:
1. 总监面
2. 由于总监时间有限制,直接算法题
3. 二分查找数组指定元素的最小索引,包含边界值处理,测试用例的设计。(算是运气好)

字节新业务后端开发:

一面:
1. 自我介绍
2. 数据库表如何设计的
3. 系统中的 JWT + SpringSecurity 如何实现认证和授权的
4. HTTP 和 HTTPS 的区别
5. 拥塞控制和流量控制的含义和区别,包括拥塞的四个算法
6. Innodb 索引介绍一下
7. 项目中用到哪些索引,怎么用的
8. 覆盖索引是什么
9. ACID 如何保证的(undolog, AID, redolog, mvcc)
10. Redis key过期怎么办?如何删除key?(淘汰策略)
11. Redis 分布式锁你是怎么理解的
12. leetcode 540

二面:
1. 自我介绍
2. 系统中为什么使用 Redis?怎么使用的
3. 详解 JWT,如何实现系统登陆的,如何解决 JWT 的 Token 续期问题
4. 防重复提交如何实现的
5. AOP 是什么(我是从 JDK + CGLIB 源码角度解答的)
6. 然后他说我面过好多次了,基础可以就没有问我八股了(实际上这面之前字节已经面过五次了)
7. 做题:第一题:leetcode 763,第一题没思路,然后给了第二题:分糖果,过了之后又出了一个题:leetcode 162,还好会二分

三面:(三面没录音,记不太清晰了)
1. 自我介绍
2. 项目简介,问项目系统设计从软件工程的角度如何考虑,包括需求,设计,安全多角度思考(结合自己的系统)。
3. 做题:合并 N 个不等长的有序数组为一个有序数组,动态输入。(20分钟之内)
4. 问了操作系统 read write 底层原理
5. 操作系统线程切换的底层原理,设计哪些寄存器的内容,如何变化的
6. 计算机网络的拥塞控制,有哪些缺点,如何改进
7. 了解 QUIC嘛,有哪些优点,解决了 HTTP 2.0哪些问题

#面经#
全部评论
网络中的二进制如何对应真实内容 这段想问的应该是魔数吧
1 回复 分享
发布于 2022-07-07 15:13
大厂的面试就是有深度啊
点赞 回复 分享
发布于 2022-06-18 17:11

相关推荐

社区工程一面(50min)拷打实习native层怎么调Java层函数。了解Native层和Java层内存模型的差异吗你在字节的工作?Activity的生命周期onStart和onResume的区别你怎么学安卓的了解View的绘制吗ViewGroup里面一些子View,是怎么个绘制流程如果ViewGroup自己有内容呢Layout是怎么做的点击屏幕发生的事具体场景,一个ScrollView里有个按钮,点击按住不动,向上滑动,事件分发过程是怎样的讲讲Java里的集合ArrayList忽然LinkedList的区别是什么Hash集合和Tree集合的区别是什么了解过Java中的并发吗,多线程间并发处理有哪些方法讲讲synchronized的特点讲讲volatile线程和协程的区别他们的上限有区别吗http和https的区别https握手过程算法题先增后降的数组去重并排序二面(37min)讲讲腾讯实习讲讲ClassLoader的双亲委派机制PathClassLoader和DexClassLoader的区别native怎么调javacpp的string转jstring的两种方式讲讲项目为什么用flutterDart是单线程模型,它内部是怎么做多线程并发的继续拷打实习大厂代码你有没有觉得什么很恶心的问题,你怎么看这个问题有什么治理手段吗拷打项目安卓中Binder的原理?你会不会觉得客户端能深钻的技术不多算法题(口答)n个人发糖果,相邻的人高的一定比矮的拿的多,至少要多少颗糖果编程题写一个生产者消费者模式三面(45min)你更喜欢做业务还是sdkJava中new一个String会创建几个对象抽象类和接口有什么区别final关键字有什么用cpp从源文件到可执行文件经历了什么可执行文件在操作系统怎么运行的调用一个函数,栈空间怎么变化返回值是放在哪的看你做过JNI,怎么动态和静态注册JNI?cpp的线程怎么call java的方法需要注意些什么安卓中遇到ui卡顿了你会怎么排查有没有用过一些工具你觉得kotlin和java比有什么优势你刚刚提到了协程,那协程是怎么实现的讲一下Handler的实现原理介绍一个你认为做的比较好的项目讲讲你在字节的工作算法题用两个栈实现队列
查看52道真题和解析
点赞 评论 收藏
分享
2024-12-29 21:17
已编辑
腾讯_微信_客户端开发
上岸了,回馈社会更新中一面(约1h)拷打项目你的登录怎么做的(WebView回调检测登录成功,html提取用户信息)经过实习你有没有学到别的方法(F12抓包,走一遍登录流程看发了什么请求,返回了什么数据,里面可能有token)之前贴吧中有人发一个链接,用户点击后会自动发一个逆天评论,怎么解决这个问题(请求中带token)token怎么来(登录时服务端返回,保存用户信息,过期时间等信息,可以用token+refresh的双token模式)拷打实习介绍一下实习为什么用到Native Hook(监听登录)Native Hook方式?(PLT hook, inline hook)inline hook原理?(改指令,跳转到代理函数)PLT Hook的原理?(修改GOT表)改什么?(目标函数的绝对地址)PLT Hook使用条件(目标函数为外部引用)怎么保证一定能Hook到?也就是你要在实际执行前hook。(Hook dlopen,加载目标so的时候自动hook)Hook时机?(attachBaseContext)讲讲Java层Hook?(反射修改ClassLoader,优先加载自己的dex)场景题native层怎么监控数组越界(写一个数组工具类)那已有的代码呢(hook malloc)hook了怎么改(不知道,提示了mprotect后说把分配内存后面的区域设为不可访问,这样越界会有异常,能被捕获)设置多大的范围?(不知道)八股安卓中内存泄漏了解吗(Service,ThreadLocal,长生命周期持有短生命周期引用)算法题解决memcpy覆盖的问题二面(约1h30min)拷打实习讲讲替换ClassLoader实习hook的细节PLT Hook的原理有哪些先决条件(外部引用)为什么同一个so里的Hook不到(调用不走PLT和GOT表)还有哪些Hook方式(Inline Hook)什么原理(插跳转指令)还有什么方法(不知道)外部引用地址是怎么填到GOT表中的(加载so的时候会记录已加载函数的地址)so函数地址是怎么来的(支支吾吾)ELF加载过程(dlopen把so加载进内存解析,具体啥结构不记得了)改符号导出表可以吗(哦哦可以,dlsym应该就是通过这个获取函数地址的)编译打包优化展开讲讲AB实验了解吗(没有了解)AB实验原理是什么(对照实验)对照实验原理是什么(控制变量观察结果)观察到B比A点击率高0.1%,可以认为B比A好吗(不能,有偶然性)那要百分之多少才没有偶然性(不知道)拷打项目有啥难点吗(没啥难点)为什么用的人这么多(口口相传)八股请求到服务器到返回结果,经历了哪些事情DNS解析是谁做的(操作系统)场景用过微信网页传输助手吗,怎么做一个消息收发的功能(可以用WebSocket)服务端你会怎么设计(保存最近几十条消息,带id)客户端呢(长轮询,服务端收到消息后如果对方在轮询中就返回消息,客户端上线主动同步消息,告诉服务器本地最新消息id,然后服务器推送后续消息)你是怎么想到的,了解过吗(没了解过,yy出来的)闲聊为什么没转正准备读研吗,为什么不读算法题第k大数位和再数位和三面(约1h 45min)看你简历很优秀,奖项排满了,学习成绩怎么样(一般)为什么不转正在腾讯实习才系统学安卓?(是的)你做了笔记?看看(内部维基上)学了安卓有什么收获?(学到很多,也更了解kotlin了)你提到了kotlin,那说说kotlin协程和线程的区别(语言级线程,有3个调度器决定协程)用Main调度器会创建线程吗(不会)对比普通线程处理上下文,协程是怎么处理的?(也有上下文,但比线程少点)你有没有研究过kotlin协程的底层原理(io操作或suspend函数时通过挂起让出cpu)会挂起线程吗(不会)怎么挂起的(也是保存上下文吧)讲讲怎么实习优化编译打包速度的你觉得实习做的最有挑战的事是什么(native hook)展开讲讲你用PLT Hook的时候也顺便把inline hook也了解了吗(是的,安卓的Hook方式都了解了)有写文章吗(有)(投屏展示)有遇到困难吗(cpp编译成elf时函数名字改写)再讲讲替换ClassLoader的Hook方式?知道Apk包含哪些内容吗(classes.dex,lib,res,assets,resource.arsc索引)有没有用打印log去看过arsc索引文件有哪些东西(有,用mt看过,包含各种id和路径,以及color和string)从你的角度为什么要用这种方式去组织资源(便于访问,图片方便快速定位,color和string这种用的多的每次都从文件里读就慢了)他不会一次性读出来吧,你知道他怎么读的吗(不知道)场景题微信14亿用户信息,不用数据库,设计一个用纯文件去保存的方案(目录+数据)如果要修改信息呢(可以用链表存kv对)你得分页吧,基于这种分页结构,你还会怎么去完善它(同一个用户的信息尽量在同一页)这样每页都会有碎片,你不能每次都开一个新页吧,太浪费了,怎么找空页(用一个链表按顺序记录有碎片的页)这是一个好的设计。那并发读写效率差怎么解决(分表)怎么分(每一百万个用户一个文件)你对flutter的掌握程度怎么样(偏使用)有遇到卡顿的情况吗(有,ListView滑动卡)有没有去优化(没有)你项目中图片上传怎么处理的(压缩)只考虑size吗(是)微信图片考虑的就多了继续挖了点细节。闲聊讲讲竞赛经历玩什么游戏除了竞赛,还有什么能证明你的能力(逆向破解暴力薅某个软件的羊毛)智力题8个球有1个重量不一样要称几次能找出来(2次)如果是n个呢(log3(n))很多公司给你发offer,你会怎么考虑(优先微信)我估计微信给你发offer问题不大。面委(待更新)
牛客394942071号:nb
查看149道真题和解析
点赞 评论 收藏
分享
评论
15
78
分享

创作者周榜

更多
牛客网
牛客企业服务