互联网大厂 Java 高频面试题整理 (2024 最新含答案)
前言:
本文收集整理了各大厂常见面试题 N 道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码。
目录:
看面试题可以是为了面试,也可以是对自己学到的东西的一种查漏补缺,更加深刻的去了解一些核心知识点
MyBatis 面试题
1、什么是 Mybatis?
2、Mybaits 的优点:
3、MyBatis 框架的缺点:
4、MyBatis 框架适用场合:
5、MyBatis 与 Hibernate 有哪些不同?
6、#{}和 ${}的区别是什么?
7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
8、 模糊查询 like 语句该怎么写?
第 1 种:在 Java 代码中添加 sql 通配符。
...................MyBatis 面试题共 27 道
ZooKeeper 面试题
ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。
zookeeper 负载均衡和 nginx 负载均衡区别
Zookeeper Watcher 机制--数据变更通知
客户端注册 Watcher 实现
zookeeper 是如何保证事务的顺序一致性的?
Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?
zk 节点宕机如何处理?
Zookeeper 本身也是集群,推荐配置不少于 3 个服务器。Zookeeper 自身也要保证当一个节点宕机时,其他节点会继续提供服务。如果是一个 Follower 宕机,还有 2 台服务器提供访问,因为 Zookeeper 上的数据是有多个副本的,数据并不会丢失;如果是一个 Leader 宕机,Zookeeper 会选举出新的 Leader。ZK 集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在 ZK 节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。所以 3 个节点的 cluster 可以挂掉 1 个节点(leader 可以得到 2 票>1.5)2 个节点的 cluster 就不能挂掉任何 1 个节点了(leader 可以得到 1 票<=1)
..........
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 的区别?
并发编程三要素?
什么是线程池?有哪几种创建方式?
.........
Spring 面试题
1. 谈谈对 Spring IoC 的理解?
2. 谈谈对 Spring DI 的理解?
3. BeanFactory 接口和 ApplicationContext 接口不同点是什么?
4. 请介绍你熟悉的 Spring 核心类,并说明有什么作用?
5. 介绍一下 Spring 的事务的了解?
6. 介绍一下 Spring 的事务实现方式?
7.什么是 Spring 的依赖注入?
..........
Kafka 面试题
Kafka 与传统 MQ 消息系统之间有三个关键区别
讲一讲 kafka 的 ack 的三种机制
消费者故障,出现活锁问题如何解决?
kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费
kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。
....
读者福利
由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析,希望各位理解但是整理成了一份详细的 PDF 文档可分享给大家,需要完整的朋友可以点击>>传送门<<获取
评论