【Java面试库】是一个面试查缺补漏的指南,包括Java基础、集合、JVM、MySQL、Redis、MongoDB、Spring系列、MyBatis、消息队列、设计模式、项目经验等
小伙伴你好,我是希留,一路摸爬滚打的程序员一枚,一个不知名公司的技术负责人。我将持续输出干货,与你共同成长~
此外,我还收集整理了多份Java笔记、90本程序员电子书,配合面试题,效果更佳。扫描上方二维码或微信搜公众号 「Java升级之路」,即可领取。
- 1、大部分问题都是我面试被问到的内容,以及我面试别人问的一些问题,内容将会持续更新。
- 2、可先根据目录中的问题,结合自身情况进行查缺补漏。
- 3、整理输出不易,若觉得对你有帮助,还请Star支持一下,感谢!你的支持是我坚持下去的动力
- 4、若觉得有疑问的地方,还请评论区不吝指教。
- 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() 方法?
- 3.1. 说一说JVM内存结构?栈里面存储什么数据?
- 3.2. JVM的垃圾回收器有哪些?
- 4.1. String str = "123" 和 String str = new String("123")有什么区别?
- 4.2. String、StringBuider、StringBuffer的区别?
- 4.3. ==和equals有什么区别?
- 4.4. String的equals方法和StringBuffer的equals方法有什么区别?
- 5.1. Hibernate里实体类里用int类型和Integer类型的区别?
- 5.2. Hibernate实体类是否必须要有无参构造方法?
- 6.1. MyBatis与Hibernate有哪些不同?
- 6.2. #{}和${}的区别是什么?
- 6.3. MyBatis实现一对多有几种方式,怎么操作的?
- 6.4. Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
- 7.1. 说说你对Spring的理解?
- 7.2. Spring与Springboot的区别?
- 7.3. 说说SpringIOC是什么?
- 7.4. 说说SpringIOC有哪些方式实现?
- 7.5. 说说SpringAOP是什么?有哪些应用场景?
- 8.1. SpringBoot的自动装配原理是什么?
- 8.2. SpringBoot的启动方式有哪些?
- 9.1. SpringCloud和SpringBoot的区别?
- 9.2. SpringCloud都有哪些常用组件?
- 9.3. 熔断器Hystrix的原理是什么?平时工作上具体是怎么用的?
- 9.4. SpringCloud中Fegin的调用原理?
- 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高可用架构?
- 11.1. Redis的数据结构有哪些?分别应用在哪些场景?
- 11.2. Redis分布式锁会出现死锁情况吗?
- 11.3. Redis分布式锁的原理?
- 11.4. 什么是缓存雪崩?怎么避免?
- 11.5. RedisIO模型是什么?
- 11.6. Redis持久化原理?
- 11.7. Redis集群部署过吗?修改哪些配置?
- 12.1. 看你项目里用了MongoDB,说说MongoDB的集群方式有哪些?
- 13.1. RabbitMQ如何保证消息的100%投递,也是说如何保证消息不会丢?
- 13.2. RabbitMQ和RocketMQ有哪些区别?
- 13.3. RocketMQ实现事务性消息的原理?
- 14.1. 说说Java里有多少种设计模式?策略模式具体是怎么实现的?
- 14.2. 什么是面向对象,谈谈你对面向对象的理解?
- 15.1. 请描述所负责的项目或者产品业务场景,把核心业务描述清楚