东方甄选:
Kafka和mq区别
Varchar建立索引后 用int查是否能使用索引
Redis集群模式 和非集群模式 client有什么区别
Redis集群模式怎么知道key在哪个槽 是server端做的逻辑还是client做的分槽逻辑
白龙马
setnx和设置过期时间是原子操作不
联合索引,如果用A between和B等于xx,是否会用到索引,a和b的索引是同时生效么
explain会返回哪些信息,mysql被影响的行数是怎么计算出来的,
索引失效的场景有哪些
redis扩容时,数据是怎么迁移的
字段为varchar,用int查询,为什么会用到索引,反过来为什么不会用到索引
库存怎么管理?用redis,可以用本地存储不(map)
搜狐
项目中高并发实现
concurrentHashMap实现
G1,cms区别
京东
cms标记清除算法,如果有大量内存碎片怎么办
G1收集器跨代引用
线程池参数怎么设置
线程池拒绝策略分别适用于什么场景
synchronized 锁膨胀过程
lock的tryLock和lock的区别
公司用的是哪种垃圾收集器
mysql undo.log redo.log
mysql 间隙锁
lock的AQS
aof重写
minimax
自己实现多线程,答:使用synchronized关键字
hashmap数据结构,扩容的时候get,会有什么问题
光大银行
守护线程是什么
滴滴
redis cluster模式
跳表数据结构
redis rdb
redis分布式锁可能的问题:cluster某个master崩了,相同key的请求缓存穿透
设计秒杀场景:参考集卡的
如何应对大流量:限流,异步,缓存保护db
缓存db一致性怎么保证
数据库脏读幻读不可重复读解释,可重复读怎么解决不可重复读的
做题:https://www.cnblogs.com/MarkLeeBYR/p/16864527.html
滴滴二面
概率分布如何在小样本下保证准确性,用轮询的方式,给每种卡牌挨个下发数量
自己实现限流:可以用AtomicInteger,实现并发限制
kconf底层实现方式
三面
有用户表,有新闻表,想加评论表,支持按照uid去查也支持按照新闻id去查,会涉及分表,应该怎么设计?可以用空间换时间,按uid分表,也按新闻id分表
怎么快速检索文本中是否包含敏感词?https://blog.51cto.com/stefanxfy/4722444
怎么判断海量url中是否存在某个url?
1、hashmap
2、bitmap,
3、布隆过滤器可以用来判断一个元素是否在一个集合中,可能存在误判,可以建立白名单等机制补偿
蚂蚁
项目
悲观锁和乐观锁的使用场景
abc联合索引,用a和c查询会用到索引不
公司jvm是怎么设定的值:
xss:每个线程的堆栈大小,512k
InitialRAMPercentage:初始堆大小占总内存多少,60
MaxGCPauseMillis:GC最大停顿时间,200ms
InitiatingHeapOccupancyPercent:mixde gc触发的值,45%
G1ReservePercent:20%
阿拉丁
hive使用的场景
mysql事务开启后,在提交前新增字段会有什么问题
新增字段会加什么锁
异步处理一般有什么方式?consumer,线程池提交
countdownlatch怎么用,底层数据结构是什么
接口耗时高怎么性能优化
百度
类加载的时机和流程
threadlocal底层原理
线程中的值,怎么给线程池中的线程共享。比如线程的threadlocal设有一个值,怎么把这个值设给线程池中的线程
深度分页。a:用jdk的InheritableThreadLocal,或者用阿里开源的TransmittableThreadLocal
面对大数据量,如果要实时精确查询总数据量,需要怎么做?用缓存:可能会写失败,需要用到深度分页,或者es存储数据,读的时候从es查即可
字节
redis key过段时间后失效是怎么做到的
jvm复制算法的优缺点
复制算法为什么要8:1:1,把两个survivor合并是否可以
一个域名,怎么知道他是https的,如果用http访问https,会有什么结果
301和302的区别
二面
rocketmq,rebalance触发原因,rebalance是在哪一端完成的
kafka假死
kafka怎么保证消息一致性
rocketmq延迟消息
redis大key怎么处理,redis keys命令如果不能执行,需要怎么做
三面
四面
redis做库存存储下发量,会存在问题,例如:redis实际写入成功了,但是返回结果的时候IO超时了,则业务侧认为redis没写入成功,不发奖了,造成库存浪费。
怎么解决:使用mysql,对mysql和redis双写。然后用task定时刷db和redis对比数值是否一致
手动实现阻塞队列
五面
线上cpu使用率高,怎么排查
六面
项目:说了些集卡的实现,分布式锁,库存,异步处理,事务处理
算法:做出来了
问问题:
Q:mysql高可用怎么保证的?
A:这个没太了解,主要说了高性能,主从模式,索引,事务相关的,其他的高可用不太清楚
Q:abc联合索引,a=1,c=3,b>2 是否用到索引
A:a用到了,b用到了,c没用到
Q:用联合索引的好处,什么时候用联合?
A:好处:避免创建多个索引,节省存储空间,什么时候用联合索引:经常多个字段联合查询的时候
Q:redis高可用怎么保证?
A:主从,哨兵,集群,持久化这些
Q:mysql一个表从a库迁移到b库,怎么平滑迁移?
A:没太了解,猜测大概用binlog吧
Q:mysql为什么选自增id作为主键?
A:主键索引是聚集索引,聚集索引的索引顺序和真实数据顺序一致,所以用自增id,保证自增一条数据,和自增id能对应上。(这个后来查了下网上有标准答案。。标准答案中有些点没答出来)
Q:rokectmq什么时候用到,kafka什么时候用到?
A:保证最终触达,有失败自动重试的场景,或者用到事务消息,延迟消息的场景用前者,一般的流式处理异步处理这些用后者
Q:延迟消息怎么实现的?
A:broker把消息写到scheduled_topic,然后有个延迟服务扫信息,信息到期后投入到topic中
Q:线上遇到什么故障没?
A:说了个故障
七面
zset数据结构
redis 读请求是master还是slave,主从数据不一致怎么办
redis hashmap rehash
redis字典
mysql order by在引擎侧还是服务器侧
可重复读加的是什么锁
八面
堆外内存
什么时候会用到
什么时候回回收
redis rdb期间怎么处理的读写
阿里云
redis,value过大可以怎么处理:拆分key,或者把value从json转为pb
连续调用两个下游服务,怎么保证原子性:分段式提交
gc耗时高 怎么排查,看哪些日志
kafka怎么保证消息不丢失
如果有500亿条业务数据,应该怎么存储?如果用db存,分表按uid分,查不同库的业务会很麻烦,可以用es
三面
oom怎么排查,dump用过没,频控怎么实现(redis,本地)
美团
线程池参数
一条查询sql的select,from,where,group by的执行顺序
小红书
final在什么场景下会用到
匿名内部类访问外部的对象,必须是final类型的才行 为什么?
直接内存
master从宕机到选举出新的mater期间还能写入么?会给调用方抛异常么还是redis自己处理
悲观锁和乐观锁的使用场景
下面异常是怎么产生的?
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@355bffba rejected from java.util.concurrent.ThreadPoolExecutor@7c3d99bf[Running, pool size = 300, active threads = 16, queued tasks = 350, completed tasks = 90358217]
二面
项目
volatile和synchronize的底层原理
gc问题排查经历
算法题
三面
mysql 持久化怎么实现的
https是对称还是非对称加密
蚂蚁
缓存击穿,穿透,雪崩
100w条数据,分页查10条速度很慢,有什么排查思路
字符串上建立索引和数值类建索引有什么不一样
B+树有什么优势
小冰
加权轮询算法了解过没
http301,302,304,307含义
http2.0和1.1区别
synchronized能锁住字符串么
kafka commit机制
redis持久化机制
redis cluster模式
redis hscan命令
线上cpu飙升,怎么查?用top和jtack这些查
除了top和jstack命令,有没啥先进的工具?
arthas底层原理
java agent是什么
mysql想给字符串建索引,应该怎么操作