中高级Java一面基础知识点记录

339 阅读4分钟

这是我参与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存储引擎区别点?(事务、锁机制)

最后

  • 虚心学习,共同进步 -_-