Java 还能不能继续搞了?
金三银四招聘季已落幕,虽说行情不是很乐观,但真正的强者从不抱怨。
在此期间,我收到众多小伙伴的宝贵反馈,整理出132道面试题,从基础到高级,有八股文,也有对某个知识点的深度解析。包括以下几部分:
- Java:基础、线程、并发编程、 网络编程、JVM。
- 框架:Spring Boot、Spring Cloud。
- 数据库:Redis、MySQL。
- 架构:系统设计、技术选型、分布式理论等。
准备好迎接金九银十吧!!!
Java 基础
以下面试题可以移步至:
《Java基础面试题》
- Java 创建对象有几种方式?
- 有了数组为什么还要ArrayList?
- 重载和重写的区别
- 什么是内部类?应用在什么场景?
- 介绍下Java中的四种引用
- static都有哪些用法?
- HashCode在集合中的作用
- Hash冲突怎么处理?
- 深拷贝和浅拷贝的区别是什么?
- 你知道什么是fail-fast吗?
- 介绍下你对红黑树的理解
- 异常处理影响性能吗?
- 介绍下try-with-resource语法
- 你知道哪些数据结构?
- AVL树是怎么保持平衡性的?
- 为什么红黑树比AVL树效率高?
Java 线程
以下面试题可以移步至:
《Java线程面试题》
《Java线程安全面试题》
- 创建线程有几种方法?
- 介绍下线程的生命周期?
- 如何停止正在运行的线程?
- 什么是线程安全?
- 线程安全需要保证几个基本特性?
- 为什么wait和notify方法要在同步块中调用?
- Synchronized和Lock的区别?
- 常用的线程池有哪些?
- 为什么需要线程池?
- 简述一下线程池的工作原理
- 线程池的拒绝策略有哪些?
- 说说ThreadLocal的原理?
- 如何保证线程安全?
- 为什么需要确保共享变量的可见性?
- volatile是如何保证可见性、有序性?
- 谈一下 CAS 机制实现原理?
- CAS 机制存在什么问题?
- 简述一下synchronized工作原理?
- 简述一下synchronized锁升级的过程?
- 什么是锁粗化和锁消除?
- 为什么 HashMap 是线程不安全的?
Java 并发编程
以下面试题可以移步至:
《Java并发编程面试题》
- AQS是什么?
- AQS唤醒节点时,为什么是从后往前找?
- AQS为什么用双向链表?
- AQS为什么要有一个虚拟的head节点?
- ReentrantLock 的底层实现
- ReentrantLock的公平锁和非公平锁的区别
- ReentrantReadWriteLock如何实现读写锁?
- CountDownLatch,Semaphore有什么用?
- 你知道哪些常用的阻塞队列?
- 阻塞队列中的虚假唤醒是什么?
Java 网络编程
- 什么是网络编程?
- 什么是BIO、NIO、IO多路复用?
- Java NIO是New IO还是Non-blocking IO?
- 聊一下你对Netty的认识?
- Netty和Java NIO是什么关系?
- Netty为什么那么高效?
Spring Boot
以下面试题可以移步至:
《Spring Boot面试题 》
- 什么是 Spring Boot?
- Spring Boot 有哪些核心注解?
- Spring Boot 自动装配是什么?
- Spring Boot 自动装配原理?
- Spring Boot 配置文件的加载顺序
- bootstrap.properties 和 application.properties 有何区别 ?
- Spring Boot Actuator是什么?
- Spring Boot项目如何热部署?
- Spring Boot 中的 starter 是什么 ?
- Spring Boot 有哪些 starter ?
Spring Cloud
以下面试题可以移步至:
《Spring Cloud 面试题》
- Nacos是CP还是AP?
- 注册中心应该选择CP还是AP?
- Nacos注册中心工作机制是怎样的?
- Eureka注册中心工作机制是怎样的?
- Eureka自我保护机制原理是什么?
- Eureka和Nacos区别
- Nacos配置中心长轮询机制是什么?
- Nacos配置中心为什么不选择主动推送而是采用长轮询机制?
- Nacos配置中心宕机了,会影响服务吗?
- 为什么Feign第一次调用耗时很长?
- 使用Feign如何实现认证的传递?
- Seata中xid如何通过Feign进行全局传递?
- Feign底层默认使用什么发送HTTP,有什么问题?
- Seata支持那些事务模式?
- Gateway和Zuul的区别?
JVM
以下面试题可以移步至:
《JVM 面试题》
- 谈一下你对JVM的理解?
- JVM 为什么可以实现跨平台?
- JAVA内存模型和JVM内存模型有啥关系?
- JDK,JRE以及JVM的关系
- JDK编译器是怎么工作的?
- 类加载机制是什么?
- 有哪些类加载器?
- 什么是双亲委派机制?
- 介绍一下JVM内存区域划分
- 堆为什么进行分代设计?
- 什么是内存的担保机制?
- 为什么Eden:S0:S1 比例是8:1:1?
- 描述一下对象内存分配过程
- 如何判断对象已死?
- 讲一讲内存模型?
- 常用的垃圾回收算法有哪些?
- 常用的垃圾收集器有哪些?
- 常用的JVM调优参数有哪些?
Redis
以下面试题可以移步至:
《Redis 面试题》
- 为什么要使用Redis做缓存?
- 为什么Redis单线程模型效率也能那么高?
- Redis常见数据结构以及使用场景?
- Redis的数据结构是如何组织的?
- pipeline有什么好处,为什么要用 pipeline?
- Redis官方为什么不提供 Windows版本?
- Redis 持久化方式有哪些?有什么区别?
- 什么是Redis事务?原理是什么?
- Redis6.0为什么要引入多线程?
- 如何在100个亿URL中快速判断某URL是否存在?
- 什么是渐进式rehash?
- Redis有哪些的过期策略?
- Redis有哪些的淘汰策略?
- 什么是BigKey?
- 什么是缓存击穿、缓存穿透、缓存雪崩?
MySQL
- MySQL索引在什么情况下会失效?为什么?
- 描述一下一条SQL的执行流程?
- 执行器调用存储引擎后,InnoDB做了什么事?
- MySQL是如何保证数据不丢失的?
- MySQL是如何保证数据一致性的?
- MySQL数据被误删怎么办?
- 描述一下MySQL的主从复制流程。
- 分库分表有什么好的方案?
- 谈一下对MySQL事务隔离的认识?
- MySQL是怎么处理并发事务的?
- 什么是异构索引表,在分库分表场景下如何应用?
架构
- 如何在海量数据中快速检测某个数据?
- 消息中间件如何选型?
- 如何避免RabbitMQ消息丢失?
- 什么情况下可以用微服务架构?
- 高并发的系统都是怎么设计出来的?
- 什么是限流?你知道哪些限流算法?
- 如何理解分布式系统下的CAP理论?
- BASE理论又是什么?
- 你知道哪些分布式一致性算法?
- 如何保证分布式系统中ID的唯一性?
相关文章:

Java 还能不能继续搞了?
金三银四招聘季已落幕,虽说行情不是很乐观,但真正的强者从不抱怨。 在此期间,我收到众多小伙伴的宝贵反馈,整理出132道面试题,从基础到高级,有八股文,也有对某个知识点的深度解析。包括以下几部…...

【日记】遇到了一个很奇怪的大爷(845 字)
正文 花了昨天和今天两天时间,把数据转移完了。这块 2T 的硬盘可以光荣退休了。目前是没什么存储焦虑了。 农发行净开发一些垃圾系统。今天没什么业务,但跟 ActiveX 斗智斗勇了一整天,最后实在搞不过 IE 浏览器。我也懒得管了,又不…...

Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明
Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明 目录 Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明 一、简单介绍 二、处理文本数据 三、用…...

GAT1399协议分析(10)--视频定义及解析
一、官方定义 二、字段解析 VideoID 类型BasicObjectID 解析参考GAT1399协议分析(8)--ImageInfo字段详解-CSDN博客 InfoKind 采集类型...

【C语言】学生管理系统:完整模拟与实现
🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 🔥引言 本篇文章为修改了在校期间实训报告,使用C…...

pypi 发布自己的包
注册pypi个人用户 网址:https://pypi.org 目录结构dingtalk_utils 必须-pkgs- __init__.py .gitignore LICENSE 必须 README.md 必须 requirements.txt setup.py 必须安装依赖 pip install setuptools wheel安装上传工具 pip install twinesetup.py i…...

关闭windows11磁盘地址栏上的历史记录
关闭windows11的磁盘地址栏上的历史记录 windows11打开磁盘后访问某一个磁盘路径后会记录这个磁盘路径,而且有时候会卡住这个地址栏(关都关不掉),非常麻烦。 如下图所示: 关闭地址栏历史记录 按下windows键打开开…...

DDS自动化测试落地方案 | 怿星科技携最新技术亮相是德科技年度盛会
5月28日,怿星科技作为是德科技的重要合作伙伴亮相Keysight World Tech Day 2024。在此次科技盛会上,怿星科技不仅展示了领先的DDS自动化测试解决方案等前沿技术,还分享了在“周期短、任务重”的情况下,如何做好软件开发和测试验证…...

新品!和芯星通全系统全频高精度板卡UB9A0首发
6月6日,和芯星通发布了UB9A0全系统全频高精度GNSS板卡,主要应用于CORS站、便携基站、GNSS全球监测跟踪站等。延续了上一代产品高质量原始观测量的特点,UB9A0在性能和稳定性方面均表现出众。 UB9A0基于射频基带及高精度算法一体化的GNSS SoC芯…...

Cognita RAG:模块化、易用与可扩展的开源框架
Cognita RAG是一个开源框架,它通过模块化设计、用户友好的界面和可扩展性,简化了将领域特定知识整合到通用预训练语言模型中的过程。本文介绍了Cognita的特点、优势、应用场景以及如何帮助开发者构建适合生产环境的RAG应用程序。 文章目录 Cognita RAG介…...

linux虚拟机免密登录配置
1、假设A服务器要免密登录B服务器 2、在A服务器上执行命令: cd /root/.ssh/ ssh-keygen -t rsa #这里会生成两个文件 一个是id_rsa私钥和公钥rsa.pub2、我们把公钥的内容复制粘贴到B服务器的/root/.ssh/authorized_keys文件下 #在A服务器上执行命令记录内容 cat …...

Qt_C++ RFID网络读卡器Socket Udp通讯示例源码
本示例使用的设备: WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QHostInfo> #include <QNetworkInterface> #include <…...
C++ 实现Python 列表list 的两种方法
1、vector里面放多种参数。在C中,如果你想要在std::vector中存储不同类型的参数,你可以使用std::any(C17及以上)或std::variant(C17以前的版本需要使用Boost库或者C17及以上标准)。以下是使用std::vector&l…...

vue3+ elementPlus PC端开发 遇到页面已进入就form校验了的问题
form表单一进页面就校验了 rules里配置的 require 提示语 如图所示代码是这样的 最后发现是form表单下面的一个按钮的展示规则 会导致规则校验 canAddInsured 这个字段的变化会导致form表单校验 这个字段是computed maxInsureds 也是个computed监听 maxInsured.value >1 就…...
transformers DataCollator介绍
本博客主要介绍 transformers DataCollator的使用 from transformers import AutoTokenizer, AutoModel, \DataCollatorForSeq2Seq, DataCollatorWithPadding, \DataCollatorForTokenClassification, DefaultDataCollator, DataCollatorForLanguageModelingPRETRAIN_MODEL &qu…...

rust学习(字节数组转string)
最新在写数据传输相关的操作,发现string一个有趣的现象,代码如下: fn main() {let mut data:[u8;32] [0;32];data[0] a as u8;let my_str1 String::from_utf8_lossy(&data);let my_str my_str1.trim();println!("my_str len is…...

Docker:技术架构演进
文章目录 基本概念架构演进单机架构应用数据分离架构应用服务集群架构读写分离/主从分离架构冷热分离架构垂直分库微服务容器编排架构 本篇开始进行对于Docker的学习,Docker是一个陌生的词汇,那么本篇开始就先从技术架构的角度出发,先对于技术…...

汽车MCU虚拟化--对中断虚拟化的思考(2)
目录 1.引入 2.TC4xx如何实现中断虚拟化 3.小结 1.引入 其实不管内核怎么变,针对中断虚拟化无非就是上面两种,要么透传给VM,要么由Hypervisor统一分发。汽车MCU虚拟化--对中断虚拟化的思考(1)-CSDN博客 那么,作为车规MCU龙头…...

python的继承
本章正式开始之前,先让我们回顾一下什么是 对象 ? 什么是 类 ? 小贝 喜欢 猫咪,今年领养了一只名叫 Kitty 的 布偶猫。则下列哪项是 对象 呢? A. 猫咪 B. Kitty C. 布偶猫 相比之下,闻闻 更喜欢 犬科 动…...

组件的注册和引用
在Vue中,开发者可以将页面中独立的、可重用的部分封装成组件,对组件的结构,样式和行为进行设置。组件是 Vue 的基本结构单元,组件之间可以相互引用。 一.注册组件 当在Vue项目中定义了一个新的组件后,要想在其他组件中…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...