我相信大多 Java 开发的程序员或多或少经历过 BAT 一些大厂的面试,也清楚一线互联网大厂 Java 面试是有一定难度的,小编经历过多次面试,有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析,阐述下如何去准备,去回答面试官的提问,可以和面试官有个愉快的交谈。
小编分享的这份 BAT 必考 Java 真题合集包含了性能调优、并发编程、框架源码、分布式框架、微服务架构、项目实战、互联网工具等七个大专题技术点真题模块分享,都是小编在各个大厂面试总结出来的面试真题,已经有很多粉丝靠这份真题合集拿下金三银四的面试,今天小编在这里总结分享给到大家!
小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录
- MyBatis 面试题
- ZooKeeper 面试题.
- Dubbo 面试题
- Elasticsearch 面试题
- Memcached 面试题
- Redis 面试题
- MySQL 面试题
- Java 并发编程
- Java基础面试题
- Spring 面试题
- 微服务 面试题
- Linux 面试题
- Spring Boot 面试题
- Spring Cloud 面试题
- RabbitMQ 面试题
- kafka 面试题
文档已经给大家整理好了!由于篇幅限制,无法全部展示出来,文中资料已整理打包存放网盘,有需要完整版PDF的朋友可以扫码+关注后免费获取!
MyBatis
1、什么是 Mybatis?
2、Mybaits 的优点:
3、MyBatis 框架的缺点:
4、MyBatis 框架适用场合:
5、MyBatis 与 Hibernate 有哪些不同?
6、#{}和${}的区别是什么?
7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
8、 模糊查询 like 语句该怎么写?.
9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?
10、Mybatis 是如何进行分页的?分页插件的原理是什么?
11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
12、如何执行批量插入?
13、如何获取自动生成的(主)键值?
14、在 mapper 中如何传递多个参数?
15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?
16、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
18、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
19、 一对一、一对多的关联查询 ?
20、MyBatis 实现一对一有几种方式?具体怎么操作的?
21、MyBatis 实现一对多有几种方式,怎么操作的?
22、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
23、Mybatis 的一级、二级缓存
24、什么是 MyBatis 的接口绑定?有哪些实现方式?
25、使用 MyBatis 的 mapper 接口调用时有哪些要求?
26、Mapper 编写有哪几种方式?
27、简述 Mybatis 的插件运行原理,以及如何编写一个插件。
Zookeeper
1、ZooKeeper 是什么?
2、ZooKeeper 有哪些特性?
3、ZooKeeper 有哪些应用场景?
4、Zookeeper 支持哪些数据节点类型?
5、Zookeeper 常用的命令有哪些?
6、Zookeeper 服务器有哪几种角色?
7、Zookeeper 服务器有哪几种工作状态?
8、Zookeeper 支持哪些 Java 客户端?
9、ZooKeeper 有几种部署模式?
10、Zookeeper 集群最少要几台机器,为什么?
11、Zookeeper 集群支持动态添加机器吗?
12、ZooKeeper 是如何实现分布式事务的?
13、ZooKeeper 是如何实现分布式锁的?
14、Zookeeper 中的文件系统怎么理解?
15、Zookeeper 和 Chubby 的区别?
16、怎么理解 ZAB 协议?
17、ZAB 和 Paxos 算法的联系与区别?
Dubbo
1、为什么要用 Dubbo?
2、Dubbo 的整体架构设计有哪些分层?
3、默认使用的是什么通信框架,还有别的选择吗?
4、服务调用是阻塞的吗?
5、一般使用什么注册中心?还有别的选择吗?
6、默认使用什么序列化框架,你知道的还有哪些?
7、服务提供者能实现失效踢出是什么原理?
8、服务上线怎么不影响旧版本?
9、如何解决服务调用链过长的问题?
10、说说核心的配置有哪些?
11、Dubbo 推荐用什么协议?
12、同一个服务多个注册的情况下可以直连某一个服务吗?
13、画一画服务注册与发现的流程图?
14、Dubbo 集群容错有几种方案?
15、Dubbo 服务降级,失败重试怎么做?
16、Dubbo 使用过程中都遇到了些什么问题?
17、Dubbo Monitor 实现原理?
18、Dubbo 用到哪些设计模式?
19、Dubbo 配置文件是如何加载到 Spring 中的?
20、Dubbo SPI 和 Java SPI 区别?
21、Dubbo 支持分布式事务吗?
22、Dubbo 可以对结果进行缓存吗?
23、服务上线怎么兼容旧版本?
24、Dubbo 必须依赖的包有哪些?
25、Dubbo telnet 命令能做什么?
26、Dubbo 支持服务降级吗?
27、Dubbo 如何优雅停机?
28、Dubbo 和 Dubbox 之间的区别?
29、Dubbo 和 Spring Cloud 的区别?
30、你还了解别的分布式框架吗?
Elasticsearch
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
2、elasticsearch 的倒排索引是什么
3、elasticsearch 索引数据多了怎么办,如何调优,部署
4、elasticsearch 是如何实现 master 选举的
5、详细描述一下 Elasticsearch 索引文档的过程
6、详细描述一下 Elasticsearch 搜索的过程
7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
8、lucence 内部结构是什么?
9、Elasticsearch 是如何实现 Master 选举的?
10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个master,另外 10 个选了另一个 master,怎么办?
11、客户端在和集群连接时,如何选择特定的节点执行请求的?
12、详细描述一下 Elasticsearch 索引文档的过程。
13、详细描述一下 Elasticsearch 更新和删除文档的过程。
14、详细描述一下 Elasticsearch 搜索的过程。
15、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
16、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
17、对于 GC 方面,在使用 Elasticsearch 时要注意什么?
18、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
19、在并发情况下,Elasticsearch 如果保证读写一致?
20、如何监控 Elasticsearch 集群状态?
21、介绍下你们电商搜索的整体技术架构。
22、介绍一下你们的个性化搜索方案?
23、是否了解字典树?
24、拼写纠错是如何实现的?
Memcached
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
2、elasticsearch 的倒排索引是什么
3、elasticsearch 索引数据多了怎么办,如何调优,部署
4、elasticsearch 是如何实现 master 选举的
5、详细描述一下 Elasticsearch 索引文档的过程
6、详细描述一下 Elasticsearch 搜索的过程
7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
8、lucence 内部结构是什么?
9、Elasticsearch 是如何实现 Master 选举的?
10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个master,另外 10 个选了另一个 master,怎么办?
11、客户端在和集群连接时,如何选择特定的节点执行请求的?
12、详细描述一下 Elasticsearch 索引文档的过程。
13、详细描述一下 Elasticsearch 更新和删除文档的过程。
14、详细描述一下 Elasticsearch 搜索的过程。
15、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
16、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
17、对于 GC 方面,在使用 Elasticsearch 时要注意什么?
18、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
19、在并发情况下,Elasticsearch 如果保证读写一致?
20、如何监控 Elasticsearch 集群状态?
21、介绍下你们电商搜索的整体技术架构。
22、介绍一下你们的个性化搜索方案?
23、是否了解字典树?
24、拼写纠错是如何实现的?
Redis
1、什么是 Redis?
2、Redis 的数据类型?
3、使用 Redis 有哪些好处?
4、Redis 相比 Memcached 有哪些优势?
5、Memcache 与 Redis 的区别都有哪些?
6、Redis 是单进程单线程的?
7、一个字符串类型的值能存储最大容量是多少?
8、Redis 的持久化机制是什么?各自的优缺点?
9、Redis 常见性能问题和解决方案:
10、redis 过期键的删除策略?
11、Redis 的回收策略(淘汰策略)?
12、为什么 edis 需要把所有数据放到内存中?
13、Redis 的同步机制了解么?
14、Pipeline 有什么好处,为什么要用 pipeline?
15、是否使用过 Redis 集群,集群的原理是什么?
16、Redis 集群方案什么情况下会导致整个集群不可用?
17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
18、Jedis 与 Redisson 对比有什么优缺点?
19、Redis 如何设置密码及验证密码?
20、说说 Redis 哈希槽的概念?
MySQL
1、MySQL 中有哪几种锁?
2、MySQL 中有哪些不同的表格?
3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别
4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
5、CHAR 和 VARCHAR 的区别?
6、主键和候选键有什么区别?
7、myisamchk 是用来做什么的?
8、如果一个表有一列定义为 TIMESTAMP,将发生什么?
9、你怎么看到为表格定义的所有索引?
10、LIKE 声明中的%和_是什么意思?
11、列对比运算符是什么?
12、BLOB 和 TEXT 有什么区别?
13、MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?14、MyISAM 表格将在哪里存储,并且还提供其存储格式?
15、MySQL 如何优化 DISTINCT?
16、如何显示前 50 行?
17、可以使用多少列创建索引?
18、NOW()和 CURRENT_DATE()有什么区别?
19、什么是非标准字符串类型?
20、什么是通用 SQL 函数?
Java 并发编程
1、在 java 中守护线程和本地线程区别?
2、线程与进程的区别?
3、什么是多线程中的上下文切换?
4、死锁与活锁的区别,死锁与饥饿的区别?
5、Java 中用到的线程调度算法是什么?
6、什么是线程组,为什么在 Java 中不推荐使用?
7、为什么使用 Executor 框架?
8、在 Java 中 Executor 和 Executors 的区别?
9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?
10、什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?
11、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?
对比同步它有什么优势?
12、什么是 Executors 框架?
13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
14、什么是 Callable 和 Future?
15、什么是 FutureTask?使用 ExecutorService 启动任务。
16、什么是并发容器的实现?
17、多线程同步和互斥有几种实现方法,都是什么?
18、什么是竞争条件?你怎样发现和解决竞争?
19、你将如何使用 thread dump?你将如何分析 Thread dump?
20、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
Ps:由于篇幅限制,笔记无法全部为大家展示出来,需要完整版(含答案哦)的小伙伴可以扫码直接领取哈~