当前位置: 首页 > news >正文

牛客网2026/金三银四:Java面试八股文汇总

开始的碎碎念

本文大多是各大企业的topN题目,针对java中高级开发,本文会持续收集更新内容,如果大家有优质的Java面试题,也欢迎大家来投稿。
特意整理出这个分类的目录,方便大家平时复习和收藏哈。希望正在准备面试的朋友们能顺顺利利找到自己心仪的工作,加油!!!

适宜阅读人群

1、待面试的 初/中/高级 Java 程序员
2、查漏补缺的人
3、想要不断完善和扩充自己 Java 技术栈的人
4、Java 面试官

Java

基础

  1. Java 中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?
  2. String
    、 StringBuffer
    StringBuilder
    的区别是什么?
    String
    为什么是不可变的?
  3. == 与 equals?hashCode 与 equals ?
  4. Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
  5. 谈谈对 Java 注解的理解,解决了什么问题?
  6. Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?
  7. 内部类了解吗?匿名内部类了解吗?
  8. BIO,NIO,AIO 有什么区别?

Java 集合框架

  1. 说说 List,Set,Map 三者的区别?三者底层的数据结构?
  2. 有哪些集合是线程不安全的?怎么解决呢?
  3. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
  4. HashMap 和 Hashtable 的区别?HashMap 和 HashSet 区别?HashMap 和 TreeMap 区别?
  5. HashMap 的底层实现
  6. HashMap 的长度为什么是 2 的幂次方
  7. ConcurrentHashMap 和 Hashtable 的区别?
  8. ConcurrentHashMap 线程安全的具体实现方式/底层具体实现

jvm

  1. jvm 内存结构
  2. jvm 调优参数
  3. 什么是类加载?何时类加载?类加载流程?
  4. 知道哪些类加载器。类加载器之间的关系?
  5. 类加载器的双亲委派了解么?结合 Tomcat 说一下双亲委派(Tomcat 如何打破双亲委托机制?...)。
  6. 为什么需要双亲委派
  7. Java 内存模型
  8. 栈中存放什么数据,堆中呢?
  9. 大对象放在哪个内存区域
  10. 堆区如何分类
  11. 垃圾回收有哪些算法
  12. GC 的全流程
  13. GC 中老年代用什么回收方法?

多线程

  1. 线程和进程的区别。
  2. 什么是上下文切换?
  3. 什么是线程死锁?如何避免死锁?
  4. 乐观锁和悲观锁了解么?
  5. 说说
    sleep()
    方法和
    wait()
    方法区别和共同点?
  6. Java 线程池有哪些参数?阻塞队列有几种?拒绝策略有几种?新线程添加的流程?
  7. 实现
    Runnable
    接口和
    Callable
    接口的区别。
  8. 讲一下 JMM(Java 内存模型)。
    volatile
    关键字解决了什么问题?说说
    synchronized
    关键字和
    volatile
    关键字的区别。
  9. AQS 原理了解么?AQS 组件有哪些?
  10. 用过 CountDownLatch 么?什么场景下用的?

网络

  1. OSI 与 TCP/IP 各层的结构与功能,都有哪些协议?为什么网络要分层?
  2. 计算机网络的一些常见状态码
  3. ping 所使用的协议
  4. TCP 的三次握手与四次挥手的内容?TCP 为什么连接是三次握手而断开是四次握手?
  5. TCP 与 UDP 的区别及使用场景
  6. TCP 是如何保证传输的可靠性?
  7. 一次完整的 HTTP 请求所经的步骤
  8. HTTP 协议了解么?HTTP 是基于 TCP 还是 UDP 的?
  9. HTTP 报文的内容简单说一下!HTTP 请求报文和响应报文中有哪些数据?
  10. HTTP 和 HTTPS 的区别了解么?
  11. HTTP 请求有哪些常见的状态码?
  12. HTTP 长连接和短连接了解么?
  13. Cookie 和 Session 的关系
  14. URI 和 URL 的区别是什么?

算法和数据结构

算法

  1. LRU 算法了解吗?你能实现一个吗?
  2. 写排序算法(快排、堆排)
  3. 使用数组实现一个栈
  4. 使用数组实现一个队列
  5. 实现一个链表、反转链表、
  6. ......

数据结构

  1. 数组 vs 链表
  2. 栈的应用场景
  3. 队列的分类、应用场景
  4. 红黑树的特点、红黑树 vs 二叉查找树
  5. 哈希表、哈希表应用场景
  6. 布隆过滤器了解吗?
  7. ......

系统设计

设计模式

  1. 何为设计模式?有哪些常见的设计模式?
  2. 单例模式了解么?说一下单例模式的使用场景。手写一个单例模式的实现。
  3. 观察者模式了解么?说一下观察者模式的使用场景。
  4. 工厂模式了解么?说一下工厂模式的使用场景。
  5. 责任链模式了解么?哪些开源项目(Netty、MyBatis ...)中用到了责任链模式?怎么用的?
  6. SOLID 原则了解么?简单谈谈自己对于单一职责原则和开闭原则的理解。
  7. 阅读 Spring 源码的时候什么设计模式最让你影响深刻?能简单讲讲吗?

常见框架

Spring

  1. 什么是 Spring 框架?
  2. 列举一些重要的 Spring 模块?
  3. 谈谈自己对于 Spring IoC 和 AOP 的理解
  4. Spring Bean 的生命周期说一下
  5. Spring 中的 bean 的作用域有哪些?
  6. 拦截器和过滤器了解么?
  7. Spring 动态代理默认用哪一种
  8. hibernate 和 mybatis 区别
  9. Spring Boot 和 Spring 的区别
  10. 说出使用 Spring Boot 的主要优点
  11. 什么是 Spring Boot Starter?
  12. 介绍一下
    @SpringBootApplication
    注解
  13. Spring Boot 的自动配置是如何实现的?
  14. Spring Boot 支持哪些嵌入式 web 容器?

Netty

  1. BIO,NIO 和 AIO 有啥区别?
  2. Netty 是什么?为啥不直接用 NIO 呢?
  3. 为什么要用 Netty?Netty 应用场景了解么?
  4. 介绍一下 Netty 的核心组件?
  5. Bootstrap 和 ServerBootstrap 了解么?
  6. NioEventLoopGroup 默认的构造函数会起多少线程?
  7. Netty 线程模型了解么?
  8. 什么是 TCP 粘包/拆包?有什么解决办法呢?
  9. Netty 长连接、心跳机制了解么?

权限认证

  1. 认证 (Authentication) 和授权 (Authorization)的区别是什么?
  2. 什么是 Cookie ? Cookie 的作用是什么?如何在服务端使用 Cookie ?
  3. Cookie 和 Session 有什么区别?如何使用 Session 进行身份验证?
  4. 如果没有 Cookie 的话 Session 还能用吗?
  5. 为什么 Cookie 无法防止 CSRF 攻击,而 token 可以?
  6. 什么是 Token?什么是 JWT?如何基于 Token 进行身份验证?
  7. 什么是 OAuth 2.0?
  8. 什么是 SSO(单点登录)?

微服务/分布式

RPC

RPC 基础:

  1. 了解 RPC 吗?有哪些常见的 RPC 框架?
  2. 如果让你自己设计 RPC 框架你会如何设计?
  3. 服务之间的调用为啥不直接用 HTTP 而用 RPC?

Dubbo:

  1. Dubbo 了解吗?
  2. Dubbo 的工作原理了解么?注册中心扮演了什么角色?注册中心挂了可以继续通信吗?
  3. Dubbo 的负载均衡策略了解么?
  4. Dubbo 的 spi 机制了解么?带来了啥好处?

消息队列

  1. 为什么要用消息队列?
  2. 对比一下常见的消息队列?
  3. 如何保证消息不被重复消费?
  4. 如何保证消息消费的顺序性?

分布式 ID

  1. 何为 ID?
  2. 何为分布式 ID?
  3. 一个合格的分布式 ID 需要满足什么要求?
  4. 分布式 ID 常见的生成方法有哪些?(数据库主键自增、数据库的号段模式、UUID、SNOWFLAKE 等等)

其他(网关、限流...)

  1. 为什么要网关?
  2. 为什么要用分布式锁?有哪些实现方式?
  3. 限流的算法有哪些?
  4. 什么是服务熔断?什么是服务降级?
  5. 为什么要分布式 id ?分布式 id 生成策略有哪些?
  6. 微服务下为什需要链路追踪系统?

数据库

MySQL

基础

  1. 非关系型数据库和关系型数据库的区别?
  2. 事务的四大特性了解么?
  3. MySQL 事务隔离级别?默认是什么级别?
  4. 乐观锁与悲观锁的区别?
  5. MySQL 数据库两种存储引擎的区别?

索引

  1. 为什么索引能提高查询速度?
  2. 聚集索引和非聚集索引的区别?非聚集索引一定回表查询吗?
  3. 索引这么多优点,为什么不对表中的每一个列创建一个索引呢?(使用索引一定能提高查询性能吗?)
  4. 索引底层的数据结构了解么?Hash 索引和 B+树索引优劣分析
  5. B+树做索引比红黑树好在哪里?
  6. 最左前缀匹配原则了解么?
  7. 什么是覆盖索引

Redis

  1. 分布式缓存常见的技术选型方案有哪些?说一下 Redis 和 Memcached 的区别和共同点
  2. 说一下有缓存情况下查询数据和修改数据的流程。
  3. Redis 有哪些数据结构?SDS 了解么?
  4. Redis 内存满了怎么办?
  5. Redis 内存淘汰算法除了 LRU 还有哪些?
  6. Redis 给缓存数据设置过期时间有啥用?Redis 是如何判断数据是否过期的呢?
  7. Redis 事务了解么?(Redis 可以通过MULTI,EXEC,DISCARD 和 WATCH等命令来实现事务功能)
  8. 缓存穿透和缓存雪崩问题了解么?有哪些解决办法?
  9. 如何基于 Redis 实现分布式锁?

进阶

  1. 一条 SQL 语句在 MySQL 中如何执行的?
  2. explain 命令了解么?
  3. 简单说一下 SQL 调优思路。
  4. 简单说一下大表优化的思路。
  5. 分库分表了解么?为什么要分库分表?有哪些常见的分库分表工具(
    sharding-jdbc
    TSharding
    MyCAT
    ...)?

系统设计/场景题

  1. 假如有 10 亿个数,只有一个重复,内存只能放下 5 亿个数,怎么找到这个重复的数字?
  2. 如何设计一个秒杀系统(服务端、数据库、分布式)?分布式系统的设计?
  3. 有一个服务器专门接收大量请求,怎么设计?
  4. 如果让你自己设计 RPC 框架你会如何设计?
  5. 怎么快速出现一个 stackoverflow 错误?

其他问题

  1. 自我介绍。
  2. 说说你的项目中的亮点有哪些。
  3. 画一下你的项目的架构图。
  4. Restful 了解吗?简单说一下自己对它的认识,如果我要返回一个 boolean 类型的数据怎么办?

经验总结

  1. 多面试,不要害怕失败,多总结经验。
  2. 尽早准备,不论是找工作前、面试前还是面试后。
  3. 熟悉自己的简历。
  4. 电话和视频面试很平常,面试前提前准备一下。
  5. 坚持!offer 虽然可能会迟到,但是只要不放弃,就一定不会缺席。

后记

自荐一个非常不错的 Java 教程类开源项目:JavaGuide ,目前这个项目在 Github 上收到了 125k+ 的 star。

并且,这个项目还推出了一个 PDF 版

PDF 版本内容概览(附带暗黑模式版本) :

由于文章的篇幅有限,小编已经为大家整理成了 PDF 格式有需要的朋友可以点击下方名片获取

http://www.cnnetsun.cn/news/1741439.html

相关文章:

  • 小白友好:HY-MT1.5-1.8B模型部署常见问题与解决指南
  • 超越1-WL:K-hop消息传递图神经网络的理论边界与实践突破
  • OpenClaw模型微调对接:Qwen2.5-VL-7B个性化适配指南
  • Cursor AI Pro终极解锁指南:3步破解免费试用限制,实现终身高级功能访问
  • 3大维度提升PT资源分享效率:auto_feed_js重构你的社区协作体验
  • Face3D.ai Pro新手入门:无需专业软件,三步将自拍变成立体3D模型
  • 商用车辆电池健康数据深度解析:从真实充电记录到寿命预测
  • 新手福音:用快马AI生成带详解的msi安装脚本,轻松入门软件部署
  • AMD锐龙平台VMware 16保姆级黑苹果安装教程:搞定“客户机操作系统已禁用CPU”报错
  • 一封来自论文的求救信
  • Ollama Windows安装避坑指南:从Llama 3到Qwen2,你的电脑配置真的够吗?
  • 数据透视分析:流行有道,助力无穷的数据分析神器
  • 直流到交直流:HEAS螺柱焊机如何破解铝车身焊接的“不可能三角”
  • IDEA2022社区版从零构建Web项目:Maven打包与Tomcat9部署实战
  • nanobot部署教程:基于vLLM的OpenClaw轻量实现,显存优化适配消费级GPU
  • ESP32 4-20mA工业电流采集库:高精度隔离接收与Arduino集成
  • C#开发者必看:INIFileParser库解决INI配置文件乱码问题的实战指南
  • 跨考计算机408,我靠这三份资料和一份时间表,把最难啃的计组拿下了
  • 手把手教你用Stable Diffusion v1.5:从安装到生成第一张AI图片
  • 轻量级硬件控制工具GHelper:华硕笔记本开源替代方案全解析
  • Win11Debloat:提升40%性能的Windows 11系统优化与去臃肿解决方案
  • GTE文本向量解决中文文本处理难题:事件抽取与关系抽取实战
  • Nunchaku-FLUX.1-dev中文语义理解增强:本地词向量对齐与CLIP文本编码器优化说明
  • iPhone LiDAR和Kinect都用上了,结构光和ToF深度相机到底该怎么选?
  • 2026降AI降重工具实测:高效过审首选方案推荐
  • YOLO26最新创新改进系列:YOLO26+自动计数+自动统计各个类别数量!弯道超车,丰富文章工作量!!
  • 终端安全巡检:OpenClaw+SecGPT-14B自动化检查员工设备
  • Linux C编程基础知识(日期与时间操作)
  • 活字格低代码 —— 企业级数字化转型的首选利器
  • 如何通过VR-Reversal实现3D视频转2D播放?完整指南与免费工具