系列文章目录
架构师:说一说什么是面向对象?
面试,真的是造火箭?
金三银四,跳槽,你准备好了么?
文章目录
前言
【Java面试库】是一个面试查缺补漏的指南库,包括Java基础、集合、JVM、MySQL、Redis、MongoDB、Spring系列、MyBatis、消息队列、设计模式、项目经验等,
一、集合
1.1. HashMap 和 Hashtable 的区别?
1.2. HashMap 和 ConcurrentHashMap的区别?
1.3. ConcurrentHashMap的底层实现?put方法的实现流程?
1.4. Arraylist 与 LinkedList 区别?
二、多线程
2.1. 线程的状态有哪些?
2.2. 多线程的创建方式有哪些?
2.3. 说说 sleep() 方法和 wait() 方法区别和共同点?
2.4. 为什么我们调用start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
三、JVM
3.1. 说一说JVM内存结构?栈里面存储什么数据?
3.2. JVM的垃圾回收器有哪些?
四、String
4.1. String str = “123” 和 String str = new String(“123”)有什么区别?
4.2. String、StringBuider、StringBuffer的区别?
4.3. ==和equals有什么区别?
4.4. String的equals方法和StringBuffer的equals方法有什么区别?
五、Hibernate
5.1. Hibernate里实体类里用int类型和Integer类型的区别?
5.2. Hibernate实体类是否必须要有无参构造方法?
六、Mybatis
6.1. MyBatis与Hibernate有哪些不同?
6.2. #{}和${}的区别是什么?
6.3. MyBatis实现一对多有几种方式,怎么操作的?
6.4. Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
七、Spring
7.1. 说说你对Spring的理解?
7.2. Spring与Springboot的区别?
7.3. 说说SpringIOC是什么?
7.4. 说说SpringIOC有哪些方式实现?
7.5. 说说SpringAOP是什么?有哪些应用场景?
八、SpringBoot
8.1. SpringBoot的自动装配原理是什么?
8.2. SpringBoot的启动方式有哪些?
九、SpringCloud
9.1. SpringCloud和SpringBoot的区别?
9.2. SpringCloud都有哪些常用组件?
9.3. 熔断器Hystrix的原理是什么?平时工作上具体是怎么用的?
9.4. SpringCloud中Fegin的调用原理?
十、Mysql
10.1. 主键和唯一索引的区别?
10.2. 索引在什么情况下会失效?
10.3. Mysql的优化方式有哪些?
10.4. Mysql的组合索引,有A、B、C三个字段,AB能命中索引吗?AC呢?BC呢?
10.5. 索引的数据结构是什么?
10.6. Mysql异步复制、异步半复制的原理?
10.7. 分库分表的原则?
10.8. MHA、MMM高可用架构?
十一、Redis
11.1. Redis的数据结构有哪些?分别应用在哪些场景?
11.2. Redis分布式锁会出现死锁情况吗?
11.3. Redis分布式锁的原理?
11.4. 什么是缓存雪崩?怎么避免?
11.5. RedisIO模型是什么?
11.6. Redis持久化原理?
11.7. Redis集群部署过吗?修改哪些配置?
十二、Mongodb
12.1. 看你项目里用了MongoDB,说说MongoDB的集群方式有哪些?
十三、消息队列
13.1. RabbitMQ如何保证消息的100%投递,也是说如何保证消息不会丢?
13.2. RabbitMQ和RocketMQ有哪些区别?
13.3. RocketMQ实现事务性消息的原理?
十四、设计模式
14.1. 说说Java里有多少种设计模式?策略模式具体是怎么实现的?
14.2. 什么是面向对象,谈谈你对面向对象的理解?
十五、项目情况
总结
以上就是今天要讲的内容,本文列举了一些常见的面试题,也是本人在面试过程中被问到的问题。大家可以先看看题目看看自己能不能答出来,如有不懂的可以点击标题进去查看答案。
面经库会持续的更新中,旨在帮助大家查缺补漏,拿到更好的offer
在下才疏学浅,如有大佬感觉不对的地方,还请评论区留言指正,感谢!