猫眼娱乐Java一面(1个半小时八股盛宴)🥺
面试官是一个长得很像胡歌的帅小伙🥰,很瘦很干练,尊的很有耐心!!
可惜了前面的八股答的大概90%,手撕撕得我真是汗流浃背了,本宝宝是真的不太会有些数据结构的api,以及自定义优先队列的排序规则(Java的定义几乎没用过),
最后,面试官可能着急走了,看完没撕出来,还跟我讲,感觉我在他这里是没问题的,多多训练实操,等着二面就好,我哭了呜呜呜呜呜呜呜哇。
- 介绍一下你实习的项目
- 使用Redis分布式锁保证审批订单的的潜在修改和撤回行为的一致性(下单修改的操作保证原子性即可)
- 什么场所需要分布式来保证行为的并发性
- 审批和修改不是只需要行锁来保证原子性就可以了吗?
- Redis的分布式锁你是怎么实现的?
- Redis中如果有把锁因为集群节点宕机而永远无法被释放该如何解决
- Redis的原子性如何保证
- 你给锁设置操作时间,如果时间到了还没执行完任务,锁要是释放了怎么办
- 介绍一下CountDownLatch
- CountDownLatch底层基于什么,简单说说AQS
- 其中一个线程长时间阻塞以至于严重拖慢了后续任务的时间该怎么办
- 为什么选择MQ来进行削峰解耦
- 进行MQ解耦的合适QPS的标准是多少,
- MQ发送消息如何知道下游的服务成功消费了
- 如何保证消息不被重复消费
- 如何发现并且定位慢SQL语句
- 如何优化慢SQL
- 怎么解决深度分页问题
- Mybatis的分页插件你有用过吗
- 简单介绍一下索引
- 什么是非聚簇索引跟聚簇索引有什么区别
- 如果要你从表中查询两个字段,如何更快地查询,对这两个索引加唯一索引
- 你是如何理解分布式定时任务的
- RPC和HTTP的区别
- RPC和RocketMQ的区别
- 简单介绍一下MySQL的事务
- 使用可重复读如何保证事务安全
- 幻读是什么,可重复读使用什么机制保证了不幻读
- 索引失效的情况?
- 假如有 idx(a_b_c_d),where a=x and b =y and c=z and d=o 会走索引嘛,where a=x and b =y会走索引嘛 where a=x and b =y and c、d范围查询会走索引嘛(索引下推)
- 简单介绍一下Redis的数据结构
- 介绍一下Zset的数据结构,一般用于什么场景
- 介绍一下大Key和热Key分别是什么情况
- 如何解决大Key问题,以及如何解决热Key问题
- Redis的内存淘汰策略是什么
- Redis的默认key过期策略是什么
- 怎么理解Java的三大特性(面向对象三大特性)
- Java的”一次编译,处处运行“是如何理解的
- 他是为什么可以平台间通用的
- JavaSE对象的初始化的过程
- 年轻和老年代详细讲讲,垃圾回收的过程是什么
- 年轻代分为什么区域
- 介绍一下几种GC算法
- 什么情况下对象会从年轻代晋升到老年代
- 默认是多少次没有被回收就可以晋升?
- ArrayList和LinkedList的区别,ArrayList是线程安全吗
- HashMap的底层原理是什么,他为什么会导致线程不安全
- 它会导致什么线程不安全的情景
- HashMap在不同jdk版本有什么区别,Jdk1.7的HashMap插入是什么情况,会导致什么问题
- 如果要用线程安全的Hash表可以用什么数据结构
- 讲讲ConcurrentHashMap的底层原理
- jdk1.7和jdk8下ConcurrentHashMap的底层数据结构区别有哪些
- 尽可能发散地讲讲CAS,CAS是基于指令集的嘛,
- Java中有哪些场景用到CAS,公平锁是CAS嘛
- MySQL的行锁是悲观锁还是乐观锁
- 数据库中有用到CAS吗,用的是什么机制实现CAS
- Java中有哪些数据结构用到CAS或者能够直接封装使用原生CAS的API
- 详细讲讲OSI七层模型
- TCP和HTTP的区别
- TCP如何保证可靠性的,简单来讲讲
- 简单谈谈Zookeeper
- 同步和异步的区别是什么
- 同步阻塞和异步阻塞的区别是什么
- 谈谈NIO,谈谈NIO的三大组件
- 谈谈Buffer的几大属性
- 说说你对IOC和AOP的理解
- Java的动态代理可以聊聊吗
- CGLIB和JDK动态代理的区别和应用场景
- 来道手撕,力扣hard,滑动窗口最大值,
- 呃呃呃,面试官冒犯了,25度的空调房里,我撕了30分钟啊啊啊啊,撕得我头皮发麻,撕得我汗流浃背😥😥😥