金三银四Java 岗面试清单:分布式 +Dubbo+ 线程 +Redis+ 数据库 +JVM+ 并发

news2026/3/15 10:21:36
最近可能有点闲的慌没事就去找面试面经整理了一波面试题。我大概是分成了 Java 基础、中级、高级分布式Spring 架构多线程网络MySQLRedis 缓存JVM 相关调优设计模式算法与数据结构并发Linux 等 15 个小模块。每个小模块文章里估计就只能只给出部分的面试题目不然要是全部写出来篇幅不够呀。而且还有相应的答案太难了所以直接给大家提供最完整的答案解析文档需要的见文章末尾领取方式~一、Java 基础什么是 Java 程序的主类应用程序和小程序的主类有何不同构造器 Constructor 是否可被 overrideString StringBuffer 和 StringBuilder 的区别是什么String 为什么是不可变的对象的相等与指向他们的引用相等两者有什么不同重载和重写的区别在一个静态方法内调用一个非静态成员为什么是非法的简述线程程序、进程的基本概念。以及他们之间关系是什么什么是方法的返回值?返回值在类的方法里的作用是什么?一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?Java 面向对象编程三大特性: 封装 继承 多态Java 序列化中如果有些字段不想进行序列化 怎么办在调用子类构造方法之前会先调用父类没有参数的构造方法其目的是?线程有哪些基本状态?创建一个对象用什么运算符?对象实体与对象引用有何不同?成员变量与局部变量的区别有哪些二、Java 中级Spring 的 AOP 和 IOC 是什么使用场景有哪些Spring 事务事务的属性数据库隔离级别Spring 和 SpringMVCMyBatis 以及 SpringBoot 的注解分别有哪些SpringCould 组件有哪些它们的作用是什么微服务的 CAP 是什么BASE 是什么HashMap 底层实现原理红黑树B树B 树的结构原理CAS比较与交换实现原理Redis 支持的数据类型以及使用场景持久化哨兵机制缓存击穿缓存穿透线程是什么有几种实现方式它们之间的区别是什么线程池实现原理JUC 并发包安全性问题数据篡改拿到别人的 URL,篡改数据金额发送给系统索引使用的限制条件,sql 优化有哪些数据同步问题缓存数据库数据同步分布式事务堆溢出栈溢出的出现场景以及解决方案悲观锁乐观锁读写锁行锁表锁自旋锁死锁分布式锁线程同步锁公平锁非公平锁分别是什么初始化 Bean 对象有几个步骤它的生命周期JVM 内存模型算法垃圾回收器调优类加载机制双亲委派,创建一个对象这个对象在内存中是怎么分配的Dubbo 的运行原理与 SpringCould 相比它为什么效率要高一些Zookeeper 底层原理说出几种 MQ 之间的区别以及为什么使用这种 MQ消息重复发送幂等性消息发送失败消息掉包长时间收不到消息发送的消息太大造成接收不成功三、Java 高级为什么使用消息队列消息队列有什么优点和缺点Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点如何保证消息不被重复消费或者说如何保证消息消费的幂等性如何解决消息队列的延时以及过期失效问题消息队列满了以后该怎么处理有几百万消息持续积压几小时说说怎么解决redis 集群模式的工作原理能说一下么在集群模式下redis 的 key 是如何寻址的分布式寻址都有哪些算法了解一致性 hash 算法吗了解什么是 redis 的雪崩、穿透和击穿redis 崩溃之后会怎么样系统该如何应对这种情况如何处理 redis 的穿透为什么要分库分表设计高并发系统的时候数据库层面该如何设计用过哪些分库分表中间件不同的分库分表中间件都有什么优点和缺点你们具体是如何对数据库如何进行垂直拆分或水平拆分的有没有做 MySQL 读写分离如何实现 MySQL 的读写分离MySQL 主从复制原理的是啥如何解决 MySQL 主从同步的延时问题说一下的 dubbo 的工作原理注册中心挂了可以继续通信吗说说一次 rpc 请求的流程如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试集群部署时的分布式 session 如何实现服务注册和发现是什么意思Spring Cloud 如何实现一般实现分布式锁都有哪些方式使用 redis 如何设计分布式锁使用 zk 来设计分布式锁可以吗这两种分布式锁的实现方式哪种效率比较高dubbo 的 spi 思想是什么如何设计可以动态扩容缩容的分库分表方案四、分布式ActiveMQ 中的消息重发时间间隔和重发次数吗Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中Kafka 判断一个节点是否还活着有哪两个条件Kafka 消息是采用 Pull 模式还是 Push 模式memcached 和服务器的 local cache比如 PHP 的 APC、mmap 文件等相比有什么优缺点我需要把 memcached 中的 item 批量导出导入怎么办memcached 的多线程是什么如何使用它们MongoDB 在 A:{B,C}上建立索引查询 A:{B,C}和 A:{C,B}都会使用索引吗MongoDB 支持存储过程吗如果支持的话怎么用如何理解 MongoDB 中的 GridFS 机制MongoDB 为何使用 GridFS 来存储文件在 Nginx 中如何使用未定义的服务器名称来阻止处理请求?RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制若 cluster 中拥有某个 queue 的 owner node 失效了且该 queue 被声明具有 durable 属性是否能够成功从其他 node 上重新声明该 queue 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有 durable 属性同时 message 具有 persistent 属性才行为什么用缓存用过哪些缓存redis 和 memcache 的区别五、Spring 架构Spring Boot、Spring MVC 和 Spring 有什么区别?BeanFactory 和 ApplicationContext 有什么区别什么是基于 Java 的 Spring 注解配置? 给一些注解的例子.请解释 Spring Bean 的生命周期Spring 框架中的单例 Beans 是线程安全的么SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决SpringMVC 怎么样设定重定向和转发的当一个方法向 AJAX 返回特殊对象,比如 Object,List 等,需要做什么处理SpringMvc 用什么对象从后台向前台传递数据的服务注册和发现是什么意思Spring Cloud 如何实现使用 Spring Cloud 有什么优势什么是 Hystrix 断路器我们需要它吗什么是 Spring Cloud Bus我们需要它吗如何实现 Spring Boot 应用程序的安全性Spring Boot 配置的默认 H2 数据库的名字是上面为什么默认的数据库名字是 testdb六、线程问题stop() 和 suspend() 方法为何不推荐使用同步和异步有何异同在什么情况下分别使用它们线程间通信wait 和 notify什么是线程饿死什么是活锁atomicinteger 和 volatile 等线程安全操作的关键字的理解和使用volatile 变量是什么volatile 变量和 atomic 变量有什么不同当一个线程进入一个对象的一个 synchronized 方法后其它线程是否可进入此对象的其它方法?简述 synchronized 和 java.util.concurrent.locks.Lock 的异同多线程之间通信的同步问题synchronized 锁的是对象衍伸出和 synchronized 相关很多的具体问题例如同一个类不同方法都有 synchronized 锁一个对象是否可以同时访问。或者一个类的 static 构造方法加上 synchronized 之后的锁的影响。volatile 类型变量提供什么保证能使得一个非原子操作变成原子操作吗了解可重入锁的含义以及 ReentrantLock 和 synchronized 的区别Java 创建线程之后直接调用 start()方法和 run()的区别同步的数据结构例如 concurrentHashMap 的源码理解以及内部实现原理为什么它是同步的且效率高常用的线程池模式以及不同线程池的使用场景newFixedThreadPool 此种线程池如果线程数达到最大值后会怎么办底层原理。七、网络方面为什么要三次握手二次握手有什么问题三次握手有哪些缺陷TCP 是如何控制流量的发送方发送频率过高造成丢包TCP 是如何解决的HTTPs 为什么要用对称加密非对称加密相对于只使用非对称加密有什么好处讲一下 OSI 网络架构HTTP 在哪一层HTTP 报文结构HTTP 首部字段HTTPs 加密在哪一层实现http 是无状态通信http 的请求方式有哪些可以自己定义新的请求方式么。socket 通信以及长连接分包连接异常断开的处理。socket 通信模型的使用AIO 和 NIO。socket 框架 netty 的使用以及 NIO 的实现原理为什么是异步非阻塞八、MySQL 数据库务四大特性ACID原子性、一致性、隔离性、持久性查询语句不同元素where、jion、limit、group by、having 等等执行先后顺序MySQL 常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别MySQL 的 MyISAM 与 InnoDB 两种存储引擎在事务、锁级别各自的适用场景mysql 高并发环境解决方案事务的并发事务隔离级别每个级别会引发什么问题MySQL 默认是哪个级别MySQL BTree 索引和 Hash 索引的区别有哪些锁乐观锁悲观锁select 时怎么加排它锁sql 查询语句确定创建哪种类型的索引如何优化查询聚集索引和非聚集索引区别mysql 都有什么锁死锁判定原理和具体场景死锁怎么解决非关系型数据库和关系型数据库区别优势比较MySQL 慢查询怎么解决数据库的读写分离、主从复制主从复制分析的 7 个问题数据库崩溃时事务的恢复机制REDO 日志和 UNDO 日志九、Redis 缓存redis 事务相关命令有哪些为什么要用 redis /为什么要用缓存高性能、高并发为什么要用 redis 而不用 map/guava 做缓存?redis 和 memcached 的区别请介绍一下 Redis 的数据类型 SortedSet(zset)以及底层实现机制redis 常见数据结构以及使用场景分析String、Hash、List、Set、Sorted Setredis 设置过期时间redis 内存淘汰机制MySQL 里有 2000w 数据Redis 中只存 20w 的数据如何保证 Redis 中的数据都是热点数据redis 持久化机制怎么保证 redis 挂掉之后再重启数据可以进行恢复redis 事务Redis 常见异常及解决方案缓存穿透、缓存雪崩、缓存预热、缓存降级分布式环境下常见的应用场景分布式锁、分布式自增 IDRedis 集群模式主从模式、哨兵模式、Cluster 集群模式如何解决 Redis 的并发竞争 Key 问题如何保证缓存与数据库双写时的数据一致性十、JVM 相关如何判断一个对象是否存活?(或者 GC 对象的判定方法)java 中垃圾收集的方法有哪些?简述 java 垃圾回收机制?GC 的两种判定方法Minor GC 与 Full GC 分别在什么时候发生JVM 内存分哪几个区每个区的作用是什么?GC 收集器有哪些CMS 收集器与 G1 收集器的特点GC 的三种收集方法标记清除、标记整理、复制算法的原理与特点分别用在什么地方如果让你优化收集方法有什么思路类加载器双亲委派模型机制java 类加载过程?简述 java 类加载机制?什么是类加载器类加载器有哪些?简述 java 内存分配与回收策略以及 Minor GC 和 Major GCHotSpot 虚拟机对象探秘HotSpot 垃圾收集器十一、调优方面垃圾回收器的基本原理是什么垃圾回收器可以马上回收内存吗有什么办法主动通知虚拟机进行垃圾回收Java 中会存在内存泄漏吗请简单描述。如果对象的引用被置为 null垃圾收集器是否会立即释放对象占用的内存finalize() 方法什么时候被调用析构函数 (finalization) 的目的是什么串行serial收集器和吞吐量throughput收集器的区别是什么什么是分布式垃圾回收DGC它是如何工作的你怎样给 tomcat 去调优?Tomcat 的优化经验在 Java 中对象什么时候可以被垃圾回收System.gc() 和 Runtime.gc() 会做什么事情Java 中会存在内存泄漏吗请简单描述GC 是什么? 为什么要有 GCJVM 的永久代中会发生垃圾回收么tomcat 有哪几种 Connector 运行模式(优化)内存调优十二、设计模式21 种设计模式知识要点请列举出在 JDK 中几个常用的设计模式什么是设计模式你是否在你的代码里面使用过任何设计模式在 Java 中什么叫观察者设计模式observer design pattern使用工厂模式最主要的好处是什么在哪里使用在 Java 中什么时候用重载什么时候用重写在 Java 中为什么不允许从静态方法中访问非静态变量设计一个 ATM 机请说出你的设计思路举一个用 Java 实现的装饰模式(decorator design pattern)它是作用于对象层次还是类层次举例说明什么情况下会更倾向于使用抽象类而不是接口十三、算法 数据结构如何仅用递归函数和栈操作逆序一个栈将单向链表按某值划分成左边小、中间相等、右边大的形式分别用递归和非递归方式实现二叉树先序、中序和后序遍历斐波拉契系列问题的递归和动态规划判断字符数组中是否有的字符都只出现过一次在有序但含有空的数组中查找字符串只用 2GB 内存在 20 亿个整数中找到出现次数最多的数未排序数组中累加和小于或等于给定值的最长子数组长度从 5 随机到 7 随机及其扩展最大值减去最小值小于或等于 num 的子数组数量环形单链表的约瑟夫问题将单链表的每 K 个节点之间逆序在二叉树中找到累加和为指定值的最长路径长度判断一棵二叉树是否为搜索二叉树和完全二叉树最长公共子序列问题十四、并发什么是可重入性 为什么说 Synchronized 是可重入锁为什么说 Synchronized 是一个悲观锁乐观锁的实现原理又是什么什么是 CAS它有 什么特性乐观锁一定就是好的吗JVM 对 Java 的原生锁做了哪些优化ReentrantLock 是如何实现可重入性的跟 Synchronized 相 比 可重入锁 ReentrantLock 其实现原理有什么不同如何让 Java 的线程彼此同步你了解过哪些同步器请分别介绍下 。CyclicBarrier 和 CountDownLatch 看起来很相似请对比下呢线程池中的线程是怎么创建的是一开始就随着线程池的启动创建好的吗既然提到可以通过配置不同参数创建出不同的线程池那么 Java 中默认实现好的线程池又 有哪些呢请比较它们的异同请谈谈 volatile 有什么特点为什么它能保证变量对所有线程的可见性什么是 Java 的内存模型Java 中各个线程是怎么彼此看到对方的变量的既然 volatile 能够保证线程间的变量可见性是不是就意味着基于 volatile 变量的运算就是并 发安全的 很多人都说要慎用 ThreadLocal谈谈你的理解使用 ThreadLocal 需要注意些什么请谈谈 AQS 框架是怎么回事儿十五、操作系统/Linux死锁产生的原因进程、线程区别什么时候用线程如何实现一个线程池Java 中线程池如何进行配置linux 中有哪些常见的指令进行介绍select、poll、epoll 有没有了解过讲解一下线程切换引申到 Java 阻塞➡️运行如何分层复制/home 目录到另一个目录什么是安装 Linux 所需的最小分区数量以及如何查看系统启动信息如何暂停一个正在运行的进程把其放在后台不运行什么是页面错误它是怎么发生的全部答案解析如下不一一截图了全在下面这一块已经全部整理成这些 PDF 了有需要的可以点击下方名片获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2413602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…