Skip to content

【Java面试库】是一个面试查缺补漏的指南库,包括Java基础、集合、JVM、MySQL、Redis、MongoDB、Spring系列、MyBatis、消息队列、设计模式、项目经验等

Notifications You must be signed in to change notification settings

277769738/java-interview

Repository files navigation

java-interview

【Java面试库】是一个面试查缺补漏的指南,包括Java基础、集合、JVM、MySQL、Redis、MongoDB、Spring系列、MyBatis、消息队列、设计模式、项目经验等

关于我

小伙伴你好,我是希留,一路摸爬滚打的程序员一枚,一个不知名公司的技术负责人。我将持续输出干货,与你共同成长~

image

此外,我还收集整理了多份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() 方法?

三、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. 什么是面向对象,谈谈你对面向对象的理解?

十五、项目情况

  • 15.1. 请描述所负责的项目或者产品业务场景,把核心业务描述清楚

About

【Java面试库】是一个面试查缺补漏的指南库,包括Java基础、集合、JVM、MySQL、Redis、MongoDB、Spring系列、MyBatis、消息队列、设计模式、项目经验等

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published