这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战
前言
- 记录一下公司中高级Java工程师一面面试中一些基础知识点。
Java基础:
1,场景一:new HashMap(1), 只put()一个元素,对性能有什么影响?(扩容机制)
2,ConcurrentHashMap锁机制?jdk1.8比jdk1.7优化了哪些?(分段锁、头节点锁+CAS、红黑树、链表尾插等等)
3,ArrayList里for循环remove元素会产生什么问题?(fast-fail,modCount操作记录标识)
4,场景二:核心线程数,线程队列,最大线程数分别是2,10,5的线程池中。放入15个任务,每个任务耗时1秒,请问15个任务执行完的总耗时?(线程池任务执行流程)
5,线程池中如果线程抛异常了会有什么影响?(Worker和FutureTask中run对异常处理)
6,jvm中的内存模型中,哪些是线程私有,哪些是线程共享?(堆、栈、本地方法栈、方法区、程序计数器等5种)
7,G1垃圾收集机制用的是哪种回收算法?了解G1收集器的堆内存模型?(标记-整理,另外标记-清除、标记-复制也需要理解)
9,synchronized锁机制在jdk1.6后的优化?(偏向、轻量、自旋、重量、消除、粗化等)
10,CAS原理和ABA问题?
11,jdk1.8的新特性(lambda)了解程度?
Spring基础:
1,spring循环依赖机制?(三级缓存)
2,三级缓存能解决哪些bean注入,不能解决哪些注入?(属性注入,构造注入,循环+构造)
3,spring的动态代理机制?
4,事务传播机制?事务失效场景?
5,策略设计模式和模板设计模式区别?
6,spring+策略模式场景机制?(@Autowired不同场景,如map,list)
分布式基础:
1,springboot自动装配原理理解?
3,分布式事务中2阶段提交和3三阶段提交机制?
4,结合实际场景介绍项目中数据使用强一致性还是最终一致性?
5,场景三:MQ中消息重复消费、消息丢失、消息堆积问题处理?
6,简述一下项目中使用mongodb的聚合操作?
7,Eureka注册中心集群自我保护机制?
8,nacos中服务注册和健康检测机制?
9,nacos配置中心动态刷新配置机制?
10,open-feign底层执行流程理解?
11,场景四:自己设计一个调用远程服务的RPC组件?
Redis基础:
1,redis几种基本数据结构?高级数据结构?
2,场景五:基于redis设计一个排行榜?(zset-跳表结构)
3,场景六:缓存穿透、缓存击穿、缓存雪崩出现场景及解决方案?
4,redis的持久化机制?
5,redis数据主从同步流程机制?redis主从同步时全量复制数据时能否接收客户端读写请求?
6,分布式锁的几种实现方式?(setnx,redisson)
7,场景七:锁要过期了但业务代码还未执行完如何解决?(redisson)
8,使用redisson实现分布式锁不足点?(主从复制时,主节点挂掉触发主从切换,导致其他未同步数据的从节点变成主节点,然后其他客户端对同一锁进行加锁成功,多个客户端持有同一把锁,导致脏数据。Redisson支持的哨兵和集群模式都可能会出现这种情况,解决方式使用RedissonRedLock红锁:超过半数节点响应成功才算加锁成功,但是性能更低)
8,redis内存满了的数据过期机制有几种?
9,简述redis的几种主动淘汰策略?
Mysql基础:
1,innodb存储引擎下索引数据结构?
2,聚集索引和非聚集索引区别?简述回表机制?
3,场景八:表字段a、b、c为组合索引,where a = * and c = *,是否走索引?where a = * and b > *,是否走索引?如果走索引哪些字段命中索引?
4,简述索引下推机制?
5,场景九:a为普通索引,select * from 表名 order by a,是否走索引?该如何优化?
6,列举索引失效的几种场景?
7,基于mysql实现悲观锁和乐观锁?该如何优化?
8,mysql读写锁(共享和排他锁)机制?造成死锁的场景?
9,mysql事务隔离级别?
10,myisam和innodb存储引擎区别点?(事务、锁机制)
最后
- 虚心学习,共同进步 -_-