
Java常见笔试面试题目深度剖析
来自 网络整理·免费领取学习资源
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《Java常见笔试面试题目深度剖析》。官网需要单独购买,有集上可以免费领取。
作者:JavaGuide
链接:https://www.zhihu.com/question/554839182/answer/3018208135
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处
分析了上百份大中小厂的面经,整理了 Java 面试中最最最常问的一些问题!小伙伴们可以对照着这篇文章学习或者准备面试。内容会继续完善,欢迎你在评论区说出你遇到的高频面试题! 以下所有问题的答案可以参考(大部分都能找到):JavaGuide(「Java 学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!)。 开始之前,先说一下我非常推荐的一种学习方式:带着问题学习或者准备面试。 另外,准备面试的小伙伴,一定要根据自身情况制定好复习计划! 并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。Java基础Java 中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?String 、 StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?String s1 = new String("abc");这段代码创建了几个字符串对象?== 与 equals?hashCode 与 equals ?包装类型的缓存机制了解么?自动装箱与拆箱了解吗?原理是什么?深拷贝和浅拷贝区别了解吗?什么是引用拷贝?谈谈对 Java 注解的理解,解决了什么问题?Exception 和 Error 有什么区别?Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?内部类了解吗?匿名内部类了解吗?BIO,NIO,AIO 有什么区别?参考答案:Java 基础常见面试题总结Java 集合框架说说 List,Set,Map 三者的区别?三者底层的数据结构?有哪些集合是线程不安全的?怎么解决呢?比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同HashMap 和 Hashtable 的区别?HashMap 和 HashSet 区别?HashMap 和 TreeMap 区别?HashMap 的底层实现HashMap 的长度为什么是 2 的幂次方ConcurrentHashMap 和 Hashtable 的区别?ConcurrentHashMap 线程安全的具体实现方式/底层具体实现参考答案:Java 集合常见面试题总结jvmjvm 内存结构jvm 调优参数什么是类加载?何时类加载?类加载流程?知道哪些类加载器。类加载器之间的关系?类加载器的双亲委派了解么? 结合 Tomcat 说一下双亲委派(Tomcat 如何打破双亲委托机制?...)。为什么需要双亲委派Java 内存模型栈中存放什么数据,堆中呢?大对象放在哪个内存区域堆区如何分类垃圾回收有哪些算法GC 的全流程GC 中老年代用什么回收方法?参考答案:Java 内存区域详解(重点)JVM 垃圾回收详解(重点)类文件结构详解类加载过程详解类加载器详解(重点)多线程线程和进程的区别。什么是上下文切换?什么是线程死锁?如何避免死锁?乐观锁和悲观锁了解么?说说 sleep 方法和 wait 方法区别和共同点?Java 线程池有哪些参数?阻塞队列有几种?拒绝策略有几种?新线程添加的流程?实现 Runnable 接口和 Callable 接口的区别。讲一下 JMM(Java 内存模型)。volatile 关键字解决了什么问题?说说 synchronized 关键字和 volatile 关键字的区别。AQS 原理了解么?AQS 组件有哪些?用过 CountDownLatch 么?什么场景下用的?参考答案:Java 并发常见面试题总结数据库MySQL基础 :非关系型数据库和关系型数据库的区别?事务的四大特性了解么?MySQL 事务隔离级别?默认是什么级别?乐观锁与悲观锁的区别?MySQL 数据库两种存储引擎的区别?索引 :为什么索引能提高查询速度?聚集索引和非聚集索引的区别?非聚集索引一定回表查询吗?索引这么多优点,为什么不对表中的每一个列创建一个索引呢?(使用索引一定能提高查询性能吗?)索引底层的数据结构了解么?Hash 索引和 B+树索引优劣分析B+树做索引比红黑树好在哪里?最左前缀匹配原则了解么?什么是覆盖索引进阶 :一条 SQL 语句在 MySQL 中如何执行的?explain 命令了解么?简单说一下 SQL 调优思路。简单说一下大表优化的思路。分库分表了解么?为什么要分库分表?有哪些常见的分库分表工具(sharding-jdbc、TSharding、MyCAT...)?参考答案:MySQ 常见面试题总结读写分离和分库分表详解Redis分布式缓存常见的技术选型方案有哪些?说一下 Redis 和 Memcached 的区别和共同点说一下有缓存情况下查询数据和修改数据的流程。Redis 有哪些数据结构?SDS 了解么?Redis 内存满了怎么办?Redis 内存淘汰算法除了 LRU 还有哪些?Redis 给缓存数据设置过期时间有啥用? Redis 是如何判断数据是否过期的呢?Redis 事务了解么?(Redis 可以通过 MULTI,EXEC,DISCARD 和 WATCH 等命令来实现事务功能)Redis 批量操作的方式有哪些?缓存穿透和缓存雪崩问题了解么?有哪些解决办法?如何基于 Redis 实现分布式锁?什么是 Sentinel? 有什么用?Sentinel 如何检测节点是否下线?主观下线与客观下线的区别?Sentinel 是如何实现故障转移的?Sentinel 如何选择出新的 master(选举机制)?如何从 Sentinel 集群中选择出 Leader ?Sentinel 可以防止脑裂吗?为什么需要 Redis Cluster?解决了什么问题?有什么优势?Redis Cluster 是如何分片的?为什么 Redis Cluster 的哈希槽是 16384 个?如何确定给定 key 的应该分布到哪个哈希槽中?Redis Cluster 支持重新分配哈希槽吗?Redis Cluster 扩容缩容期间可以提供服务吗?Redis Cluster 中的节点是怎么进行通信的?参考答案:缓存基础常见面试题总结Redis 常见面试题总结网络网络分层模型 :OSI 与 TCP/IP 各层的结构与功能。为什么网络要分层?OSI 与 TCP/IP 各层都有哪些协议?TCP 与 UDP :TCP 的三次握手与四次挥手的内容? TCP 为什么连接是三次握手而断开是四次握手?TCP 与 UDP 的区别及使用场景TCP 是如何保证传输的可靠性?HTTP 基于 TCP 还是 UDP?HTTP :HTTP 状态码有哪些?一次完整的 HTTP 请求所经的步骤HTTP 协议了解么?HTTP 是基于 TCP 还是 UDP 的?HTTP 报文的内容简单说一下! HTTP 请求报文和响应报文中有哪些数据?HTTP 和 HTTPS 的区别了解么?HTTP/1.0 和 HTTP/1.1 有什么区别?HTTP/1.1 和 HTTP/2.0 有什么区别?HTTP/2.0 和 HTTP/3.0 有什么区别?HTTP 请求有哪些常见的状态码?HTTP 长连接和短连接了解么?Cookie 和 Session 的关系URI 和 URL 的区别是什么?PING :PING 命令的作用是什么?PING 命令的工作原理是什么?IP :IP 协议的作用是什么?什么是 IP 地址?IP 寻址如何工作?IPv4 和 IPv6 有什么区别?参考答案:计算机网络常见面试题总结操作系统进程和线程的区别进程有哪几种状态?进程间的通信方式线程间的同步的方式PCB进程的调度算法什么是死锁?死锁的四个必要条件,解决死锁的方法常见的内存管理机制内存碎片分段机制和分页机制的区别和共同点分段机制和分页机制下的地址翻译过程分别是怎样的单级页表有什么问题?为什么需要多级页表?TLB 有什么用?使用 TLB 之后的地址翻译流程是怎样的?页缺失,常见的页面置换算法有哪些?硬链接和软链接有什么区别?常见的磁盘调度算法有哪些?参考答案:操作系统常见面试题总结算法和数据结构算法LRU 算法了解吗?你能实现一个吗?写排序算法(快排、堆排)使用数组实现一个栈使用数组实现一个队列实现一个链表、反转链表、......数据结构数组 vs 链表栈的应用场景队列的分类、应用场景红黑树的特点、红黑树 vs 二叉查找树哈希表、哈希表应用场景布隆过滤器了解吗?......系统设计设计模式何为设计模式?有哪些常见的设计模式?单例模式了解么?说一下单例模式的使用场景。手写一个单例模式的实现。观察者模式了解么?说一下观察者模式的使用场景。工厂模式了解么?说一下工厂模式的使用场景。责任链模式了解么?哪些开源项目(Netty、MyBatis ...)中用到了责任链模式?怎么用的?SOLID 原则了解么?简单谈谈自己对于单一职责原则和开闭原则的理解。阅读 Spring 源码的时候什么设计模式最让你影响深刻?能简单讲讲吗?参考答案:设计模式常见面试题总结常见框架Spring什么是 Spring 框架?列举一些重要的 Spring 模块?谈谈自己对于 Spring IoC 和 AOP 的理解Spring Bean 的生命周期说一下Spring 中的 bean 的作用域有哪些?拦截器和过滤器了解么?Spring 动态代理默认用哪一种hibernate 和 mybatis 区别Spring Boot 和 Spring 的区别说出使用 Spring Boot 的主要优点什么是 Spring Boot Starter?介绍一下@SpringBootApplication 注解Spring Boot 的自动配置是如何实现的?Spring Boot 支持哪些嵌入式 web 容器?参考答案:Spring 常见面试题总结NettyBIO,NIO 和 AIO 有啥区别?Netty 是什么?为啥不直接用 NIO 呢?为什么要用 Netty?Netty 应用场景了解么?介绍一下 Netty 的核心组件?Bootstrap 和 ServerBootstrap 了解么?NioEventLoopGroup 默认的构造函数会起多少线程?Netty 线程模型了解么?什么是 TCP 粘包/拆包?有什么解决办法呢?Netty 长连接、心跳机制了解么?参考答案:Netty 常见面试题总结权限认证认证 (Authentication) 和授权 (Authorization)的区别是什么?什么是 Cookie ? Cookie 的作用是什么?如何在服务端使用 Cookie ?Cookie 和 Session 有什么区别?如何使用 Session 进行身份验证?如果没有 Cookie 的话 Session 还能用吗?为什么 Cookie 无法防止 CSRF 攻击,而 token 可以?什么是 Token?什么是 JWT?如何基于 Token 进行身份验证?什么是 OAuth 2.0?什么是 SSO(单点登录)?参考答案:认证授权基础概念详解JWT 基础概念详解JWT 身份认证优缺点分析权限系统设计详解分布式分布式理论CAP & BASE 理论详解Paxos 算法详解Raft 算法详解RPCRPC 基础:了解 RPC 吗?有哪些常见的 RPC 框架?如果让你自己设计 RPC 框架你会如何设计?服务之间的调用为啥不直接用 HTTP 而用 RPC?参考答案:RPC 基础常见面试题总结Dubbo:Dubbo 了解吗?Dubbo 的工作原理了解么?注册中心扮演了什么角色?注册中心挂了可以继续通信吗?Dubbo 的负载均衡策略了解么?Dubbo 的 spi 机制了解么?带来了啥好处?参考答案:Dubbo 常见面试题总结分布式 ID何为 ID?何为分布式 ID?一个合格的分布式 ID 需要满足什么要求?分布式 ID 常见的生成方法有哪些?(数据库主键自增、数据库的号段模式、UUID、SNOWFLAKE 等等)参考答案:分布式 ID 常见面试题总结API 网关什么是网关?网关能提供哪些功能?有哪些常见的网关系统?参考答案:API 常见面试题总结分布式锁基于 Redis 实现分布式锁:如何基于 Redis 实现一个最简易的分布式锁?为什么要给锁设置一个过期时间?如何实现锁的优雅续期?如何实现可重入锁?Redis 如何解决集群情况下分布式锁的可靠性?基于 ZooKeeper 实现分布式锁:如何基于 ZooKeeper 实现分布式锁?为什么要用临时顺序节点?为什么要设置对前一个节点的监听?如何实现可重入锁?高并发消息队列为什么要用消息队列?对比一下常见的消息队列?如何保证消息不被重复消费?如何保证消息消费的顺序性?CDN(内容分发网络)什么是 CDN ?CDN 的工作原理是什么?参考答案:CDN(内容分发网络)详解读写分离和分库分表什么是读写分离?主库和从库的数据存在延迟的问题如何解决?如何实现读写分离?主从复制原理是什么?什么是分库?什么是分表?什么情况下需要分库分表?常见的分片算法有哪些?分库分表会带来什么问题呢?分库分表后,数据怎么迁移呢?参考答案:读写分离和分库分表详解系统设计/场景题假如有 10 亿个数,只有一个重复,内存只能放下 5 亿个数,怎么找到这个重复的数字?如何设计一个秒杀系统(服务端、数据库、分布式)?分布式系统的设计?有一个服务器专门接收大量请求,怎么设计?如果让你自己设计 RPC 框架你会如何设计?怎么快速出现一个 stackoverflow 错误?如何设计一个秒杀系统?如何设计一个微博 Feed 流/信息流系统?如何设计一个短链系统?项目经历说说你的项目中的亮点有哪些?项目用户人数有多少?最大在线人数多少?画一下你的项目的架构图。项目中遇到的困难有哪些?怎么解决的?xx某块的数据库表是如何设计的?HR面个人介绍平时的兴趣爱好对我们公司的了解三个词形容自己职业规划平时的学习方式大学里做过比较有意义的事情手里还有哪些 offer选择工作的理由排序(薪资、加班情况之类的)。经验总结学完了某个知识点之后,你可以去看看对应的八股文和知识点总结(https://javaguide.cn/)。多面试,不要害怕失败,多总结经验。尽早准备,不论是找工作前、面试前还是面试后。如果是求职目标是中小厂、国企的话,算法相对来说不是那么重要。如果你的学历比较一般的话,格外注意要把重心放在自己的项目经历上。熟悉自己的简历。电话和视频面试很平常,面试前提前准备一下。复盘!!!不管是面试失败还是成功,都要养成复盘的好习惯
贡献者
学习社区
1 人正在学习
职场沟通与管理交流
讨论工作沟通、团队管理、求职面试和办公效率,用具体场景交流方法与复盘。