快手一二面(已挂)
快手一面
1、java8集合上面有什么变动,hashmap底层结构,用链表查询为什么慢,hashmap扩容
hash冲突挂在链表下边,equals()和hashcode()写成一样,这样的话算出来的hash值一样,任何值来的话都存放在一个数组下面的链表上,这样的话会扩容吗?多线程操作对hashmap进行put,get会出现问题吗?如何解决?ConcurrentHashMap
2、有几种锁/锁的方式?轻量级,重量级锁是什么时候碰到?
3、多线程线程池,基础线程池的参数?队列有哪几种,有界队列存放数据1w多个,满了之后会怎么样,拒绝策略?核心线程数5,最大线程数10,队列100个,拒绝策略是直接丢弃,怎么执行任务
4、java8其他新特性,foreach里面可以使用return break吗
5、垃圾回收算法有哪些,垃圾收集器,G1和CMS,G1和CMS大的区别在哪里,G1和CMS内存模型有区别吗,1.8用了G1内存模型还是老年代新生代吗
6、浏览器输入一个网址,到显示这个界面,经历了什么,网络分层,UDP和TCP区别,玩游戏传输是TCP还是UDP
7、除InnoDB之外的其他引擎,索引结构,B+树索引有什么特点和B树的区别?有一张表,表中有ID,剩下字段A,B,C,对A,B建立一个联合索引,select * where A=xx,B=xx和select C where A=xx,B=xx有什么区别吗
主键索引的B+数最后的结点存的都是数据,联合索引的叶结点存的是主键ID。碰到过MySQL中有大数据吗?一张表中的数据比较多,怎么做?分库分表,那需要注意什么事情?
8、ID主键,A B C普通的值,A,B建联合索引,A=X and B>X可以走索引吗?B>X and A=X可以走索引吗?A>X and B>X走索引吗?A!=1 and B = 1走索引?怎么看SQL语句是否走索引以及性能怎么样
9、Redis 什么是缓存雪崩,什么是缓存击穿,缓存穿透怎么解决?
10、手撕:快排
快手二面
1、实习业务
2、缓存和数据库如何保证一致性
3、最终一致性
4、Redis实现分布式锁
5、电商购物车添加商品,秒杀如何保证商品不被超卖,怎么操作
6、看一面手撕,讲思路
7、Redis数据结构,用String数据结构当缓存,怎么用,有什么注意事项,某一个节点缓存大量失效
8、Redis如何实现延迟队列
9、手撕:前缀树,不了解,换成写SQL
10、操作系统怎么解决死锁哪个算法
#快手##面经#