闪电快车Java一面【凉】
面试官不错
自我介绍
线程池
- 创建线程池的方法
- 七大参数
- 原理
- IO密集型 和 CPU密集型 的区别
MySQL乐观锁和悲观锁的实现
- 是什么
- 共享锁和排它锁
- 记录锁、间隙锁、临键锁【顺便提了提ACID,解决幻读】
- MySQL怎么添加锁?具体操作【懵了、想了想 lock in 、for update】
微服务
- 这里得感谢一下阿里,回去复盘了,从公司微服务架构演变讲到分布式事务的四个解决方法【二次提交、TCC、MQ + 本地消息表】,吹了吹别的【不过,被面试官看出来是背的了,面试官还给我具体说了说真实场景的应用(尴尬)】
死锁问题
- 死锁的四大条件
- 避免死锁
- 加锁【扯到我自己的分布式锁】
- 加过期时间
- 银行家算法
关于索引的一些问题
- 有一个商品的名称和种类,怎么建立索引【离散度】
- like走索引不【%最右走索引】
- 三大范式
- 说了说 Myisam 和 innodb 一些特性【扯建立文件不同、锁不同、事务、索引啥的】
Redis
- 基本数据类型【想说跳表的原理,没给机会】
- 持久化【RDB 和 AOF】
- 我们修改完数据库的热点信息后,Redis怎么进行操作?
- 第一种思路:修改的时候,去 Redis 中,直接进行修改
- 第二种思路:修改的时候,去 Redis 中进行标记,等到用时,再进行修改
- 说了说,自己在生产上还真没有碰见这样的问题,面试官有没有兴趣给我讲解一下?
- 面试官:当我们数据库的热点数据进行修改时,直接删除掉 Redis 缓存就可以了,查的时候去数据库查,重新增添缓存
- 这时候,我感觉表现的机会来了,说:如果我们删掉索引的话,那万一高并发全部打在数据库上,可能导致数据库的瘫痪嘛?
- 后面围绕这双11的秒杀和其他的场景扯了扯
- Redis是单线程的还是多线程的?为什么能搞定10W缓存?【回去复盘】
- 我印象看过是个单线程,不过忘了在哪了
- 说了说,事务机制和主从复制机制
你的优点、缺点
反问:公司技术栈、对我的以后学技术的建议
- 校招生看看分布式和微服务,懂个基础就行,没有经历过大型的项目经历,没有办法体会到那种技术
这个挂了我有点想不太明白【还是太菜了】
#面经##校招##闪电快车##Java工程师#