本次面试答案,以及收集到的大厂必问面试题分享:
- Redis的删除策略
字节跳动二面(60分钟)
-
你希望你处于一个什么样的工作环境
-
怎么根据0-5随机函数得到0-8随机函数
-
缓存和DB之间怎么保证数据一致性
-
延时消息队列怎么设计Redis的zset
-
zset做延时队列会有什么问题死循环轮询耗时
-
说下索引二八原理、提升读性能牺牲写性能的数据结构一个索引对应一颗B+树哈希、有序数组、二叉树查询的优缺点那为什么不用跳表呢?
-
火车票区间查询怎么设计数据结构比如上海去武汉,途经南京、合肥现在要快速查询出两点之间票的库存
-
手撕代码,leetcode54螺旋矩阵
字节跳动 三面(60分钟)
-
手撕代码,模拟微信群随机红包,输入金额、人数,返回金额数组;注意最小单位分;
-
聊项目,项目中的难点、模块然后还问了一些依赖模块的底层实现
-
项目的数据量以及QPS能达到多少
-
说下RPC,与HTTP的区别
-
你来字节最想得到什么我说希望技术能突飞猛进,面试官说你别说的太虚,实实在在的说…
-
你有什么想问我的吗
2. Paypal
==========
Paypal 一面(60分钟)
-
聊项目,说项目中的模块、技术难点
-
聊下ES内部的一些机制
-
ForkPoolJoin相对于线程池的优点,及底层实现
-
详细说下CMS和G1收集器
-
CMS怎么处理垃圾碎片的
-
GC Root有哪些
-
String的intern方法有什么用
-
说下公平锁、非公平锁,为什么非公平锁性能更高
-
CAS的三个问题及解决方案
Paypal 二面(60分钟)
-
说下项目中的难点
-
说下多线程中有哪些锁
-
volatile关键字原理
-
说下ES的底层实现
-
大数据Spark、Hadoop、MapReduce有了解吗
-
100万的数组怎么求最小的100个数字和最大的100个数字
-
手撕代码,leetcode378有序矩阵中第K小的元素
Paypal 三面(60分钟)
-
leetcode121买卖股票的最佳时机
-
JVM调优
-
详细说说偏向锁、轻量级锁、重量级锁问
-
新生代配合CMS收集器用的什么收集器
-
JVM里面会有几个栈
-
为什么synchronized演变成重量级锁后性能会下降
-
kafka有没有用过
-
Redis怎么保证高可用主从机制,哨兵机制
Paypal 四面(60分钟)
-
问我机器学习和大数据这块熟不熟悉答不会面试官说那我问你些java相关的问题
-
Spring Boot内部怎么实现像tomcat那样直接把war包扔到某个目录然后运行起来整个项目
-
Spring Boot很大的jar包里面比如说有个lib目录,那这个lib如果让你去加载,怎么加载
-
你怎么深入的去学习JVM的
-
你怎么去看的虚拟机的内存
-
Jconsole和VisualVM会拿到内存占用的一个趋势,那你觉得什么样的趋势才是合理的
-
Full GC和OOM时,我怎么知道是哪一段代码引起的内存溢出和泄漏
-
G1收集器有没有Full GC线上服务GC日志有没有看过,G1 GC会有什么关键词
3. 微信支付
========
微信支付 一面(75分钟)
-
自我介绍
-
哈希和红黑树的特点和应用场景
-
说下time wait,出现在哪一端,什么原因会导致time wait过多,怎么解决
-
TCP和UDP的区别
-
用过什么微服务的框架
-
项目中怎么实现负载均衡的NginxF5
-
为什么一年不到就出来看机会
-
为什么不用MySQL的分库分表,直接用ES
-
ES索引里面都存储了哪些字段
-
调度平台模块是怎么调度的,什么时间调度,让你设计怎么实现
微信支付 二面(60分钟)
-
ES的倒排索引
-
了解分布式事务吗
-
MySQL的事务隔离级别
-
MySQL的主从备份机制
-
数据库的表结构设计有哪些经验
-
数据库的分库分表
-
关键帧提取的原理
-
限流怎么实现的
-
DB和缓存怎么保证数据的一致性
微信支付 三面(40分钟)
-
怎么保证缓存和DB之间的数据一致性
-
缓存穿透、缓存击穿、缓存雪崩区别及解决方案
-
怎么预估热点key,怎么解决热点key问题
-
缓存的淘汰策略
-
CPP会吗
微信支付 四面(170分钟)
-
哈希存在的问题
-
Redis有序集合底层实现
-
为什么用跳表不用红黑树
-
MySQL索引为什么用B+树不用红黑树
-
zset有什么应用场景
-
为什么用ES不用MySQL
-
项目的数据规模
-
为什么ES和MySQL都是基于磁盘,ES的查询性能要高
-
面试官让我共享屏幕讲项目,边讲边问
面试结束复盘查漏补缺
==========
面试本质是一个自我优势展示的过程,不要把面试变成面试官问一句自己回答一句,主动抛出一些可能的点等面试官来问,比如我基本都被问到了DB和缓存之间怎么保证数据的一致性,其实都是我自己刻意往上引的,比如面试官说,你用过Redis吗,你可以说,用过,一般用来作为缓存配合MySQL提高性能,需要注意它们之间数据的一致性问题(不要太刻意,自己把握分寸),面试官大概率会接着问你是怎么保证的
《MySql面试专题》
《MySql性能优化的21个最佳实践》
《MySQL高级知识笔记》
文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图
关注我,点赞本文给更多有需要的人
践》《MySq高级知识笔记》**如下图
[外链图片转存中…(img-YqUSCMle-1715311715997)]
关注我,点赞本文给更多有需要的人