前言:
很多小伙伴可能会很困惑,为什么BAT的面试官总是喜欢问源码?其实我们常用的Spring、MyBaits这样的框架可以说是JAVA里面最经典的教科书,从中你能学习到很多写代码的经验技巧,而去悟开源框架中蕴含的优雅架构设计之道这才是最重要的。微服务架构是一种架构风格,整个应用被划分并设计为以业务域为模型的松散耦合的独立服务,方便横向扩展能力、伸缩性强、便于开发和维护等等这些是微服务与生俱来的优势,面试的时候也都会问到SpringBoot,Cloud的问题。
本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码。
目录:
由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析,但是整理成了一份详细的PDF文档可分享给大家,文末获取免费领取方式
看面试题可以是为了面试,也可以是对自己学到的东西的一种查漏补缺,更加深刻的去了解一些核心知识点
Spring面试高频问题
问题一:谈谈你对spring IOC 和 DI 的理解,它们有什么区别?
问题二:BeanFactory接口和 ApplicationContext 接口有什么区
问题三:Spring配置 bean 实例化有哪些方式?
问题四:简单的说一下 spring 的生命周期?
问题五:请介绍一下 Spring 框架中 Bean 的生命周期和作用域
问题六:Bean 注入属性有哪几种方式?
问题七:什么是 AOP,AOP 的作用是什么?
问题八:Spring的核心类有哪些,各有什么作用?
问题九:Spring里面如何配置数据库驱动?
问题十:Spring里面 applicationContext.xml 文件能不能改成其他 文件名?
问题十一:Spring里面如何定义 hibernate mapping?
问题十二:Spring如何处理线程并发问题?
问题十三:为什么要有事物传播行为?
问题十四:介 绍 一 下Spring的 事物管理
问题十五:解释一下Spring AOP里面的几个名词
问题十六:通知有哪些类型?
Spring面试专题解析:
SpringBoot面试高频题
1.什么是 Spring Boot?
2.Spring Boot有哪些优点?
3.Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
4.Spring Boot 的配置文件有哪几种格式?它们有什么区别?
5.Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
6.开启 Spring Boot 特性有哪几种方式?
7.Spring Boot 需要独立的容器运行吗?
8.运行 Spring Boot 有哪几种方式?
9.Spring Boot 自动配置原理是什么?
10.Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
11.如何使用Spring Boot实现分页和排序?
12.如何实现Spring Boot应用程序的安全性?
13.如何集成Spring Boot和ActiveMQ?
14.什么是YAML?
15.Spring Boot中的监视器是什么?
16.什么是Swagger?你用Spring Boot实现了它吗?
17.如何使用Spring Boot实现异常处理?
18.RequestMapping 和 GetMapping 的不同之处在哪里?
19.Spring Boot 可以兼容老 Spring 项目吗,如何做
20.保护 Spring Boot 应用有哪些方法?
MyBatis 面试题
问题一:什么是Mybatis?
问题二:Mybatis的优点:
问题三:Mybatis框架的缺点:
问题四:Mybatis框架适用场合:
问题五:MyBatis与Hibernate有哪些不同?
问题六:#{}和${}的区别是什么?
问题七:当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
问题八:模糊查询like语句该怎么写?
问题九:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理
问题十:是什么?Dao接口里的方法,参数不同时,方法能重载吗?
问题十一:Mybatis是如何进行分页的?分页插件的原理是什么?
问题十二:Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
问题十三:如何执行批量插入?
问题十四:如何获取自动生成的(主)键值?
问题十五:Mybatis动态sql有什么用?执行原理?有哪些动态sql?
问题十六:Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
问题十七:Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
问题十八:为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
问题十九:MyBatis实现一对一有几种方式?具体怎么操作的?
问题二十:MyBatis实现一对多有几种方式,怎么操作的?
问题二十一:Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
问题二十二:Mybatis的一级、二级缓存:
问题二十三:什么是MyBatis的接口绑定?有哪些实现方式?
问题二十四:使用MyBatis的mapper接口调用时有哪些要求?
问题二十五:简述Mybatis的插件运行原理,以及如何编写一个插件。
ZooKeeper 面试题
ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。
- zookeeper 负载均衡和 nginx 负载均衡区别
- Zookeeper Watcher 机制--数据变更通知
- 客户端注册 Watcher 实现
- zookeeper 是如何保证事务的顺序一致性的?
- Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?
- zk 节点宕机如何处理?
SpringCloud面试高频问题
问题一:什么是Spring Cloud?
问题二:使用Spring Cloud有什么优势?
问题三:服务注册和发现是什么意思?Spring Cloud如何实现?
问题四:负载平衡的意义什么?
问题五:什么是Hystrix?它如何实现容错?
问题六:什么是Hystrix断路器?我们需要它吗?
问题七:什么是Netflix Feign?它的优点是什么?
问题八:什么是Spring Cloud Bus?我们需要它吗?
Dubbo 面试题
Spring Eureka 从开源转变为闭源,Consul 正在崛起,而 Dubbo 又开始重新更新。目前市场上仍有不少公司使用dubbo我们也需要继续学习。
- 为什么要用 Dubbo?
- 默认使用的是什么通信框架,还有别的选择吗?
- 服务调用是阻塞的吗?
- 一般使用什么注册中心?还有别的选择吗?
- 默认使用什么序列化框架,你知道的还有哪些?
- Dubbo 的整体架构设计有哪些分层?
Elasticsearch 面试题
- elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
- elasticsearch 索引数据多了怎么办,如何调优,部署
- elasticsearch 是如何实现 master 选举的
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
- 详细描述一下 Elasticsearch 更新和删除文档的过程。
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
Redis面试题
随着应用研发技术的不断成熟,Redis 缓存技术已经成为后台研发同学必备的能力之一。在很多公司面试的过程中,都必不可少地考察 Redis 知识点的掌握。
- 使用 Redis 有哪些好处?
- Redis 是单进程单线程的?
- Redis 的持久化机制是什么?各自的优缺点?
- Redis 常见异常问题和解决方案(雪崩,穿透...)
- redis 过期键的删除策略?
- 为什么 redis 需要把所有数据放到内存中?
- Redis 集群的主从复制模型是怎样的?
- Redis key 的过期时间和永久有效分别怎么设置?
MySQL 面试题
如今互联网行业用的最多就是 MySQL,然而对于高级 Web 面试者,尤其对于寻找 30k 下工作的求职者,很多 MySQL 相关知识点基本都会涉及,如果面试中,你的相关知识答的模糊和不切要点,基本大多稍好公司的面试官,基本也不会对你有兴趣,毕竟稍微量大的项目,最终都会让你去深入数据库,而且最终的大多瓶颈首先也会出现在数据库。
- MySQL 相关存储引擎。
- MySQL 索引实现原理。
- MySQL 数据库锁。
- MySQL 的 SQL 调优。
- MySQL 分表分库全局 ID。
Java 并发编程面试题
- 在 java 中守护线程和本地线程区别?
- 什么是多线程中的上下文切换?
- Java 中用到的线程调度算法是什么?
- 什么是线程组,为什么在 Java 中不推荐使用?
- 在 Java 中 Executor 和 Executors 的区别?
- 并发编程三要素?
- 什么是线程池?有哪几种创建方式?
Kafka面试题
- Kafka 与传统 MQ 消息系统之间有三个关键区别?
- 讲一讲 kafka 的 ack 的三种机制?
- 消费者故障,出现活锁问题如何解决?
- kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?
- kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。
看完上面的内容,相信大家已经有了清晰的目标与方向,接下来就是查找学习资料了,我们为大家准备了一套体系化的架构师学习资料包,供大家参考,学习资料包内容及领取方法如下:
这些资料都以整理成了PDF文档,如果有需要获取到这个里面的文档的话加下QQ好友 2603126560 或微信 xx2603126560 即可免费获取到
同时还分享更多精选整理的学习资料,包含(Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!)