Java面试图解笔记【六】共享管家讲虚拟线程,外卖预制菜解云原生

SpringBoot支持动态更新配置文件参数 本文介绍SpringBoot在不重启服务的前提下动态刷新配置参数的实现方案。文章通过自定义DynamicPropertyUpdater与ConfigFileReloader组件,结合Environment属性源操作,实现单个配置项更新、批量更新以及重新加载整个配置文件,并给出接口测试步骤与效果验证。 阅读详情

《Java面试85题图解版(三)》下篇:高阶特性实战篇

📂 Java面试85题图解版 · 全系列7篇

方法论 | 基础核心篇 | 并发+JVM | Spring+数据库 | Redis缓存 | 高阶架构 | 高阶特性 ← 你在看

📌 全系列总目录 | 💡 每道题 = 结构图 → 场景比喻 → 对比表 → 一句话总结


阅读提示:这是“图解+比喻+一句话总结”面试题库的第六篇,也是全系列终篇。覆盖Java高阶特性、系统实战与最佳实践共9道题。从虚拟线程到云原生,从调优案例到设计模式,面试最后一关的硬核题目都在这里。结构图 → 场景比喻 → 关键对比表 → 一句话总结。

📂 本篇题目导航

题号题目比喻关键词
77Java 21虚拟线程共享管家 vs 专属服务员
78Spring WebFlux vs MVC自助点餐机 vs 柜台
79Sealed Class + 模式匹配食堂自动打菜机
80JVM/DB调优实战案例医生看诊
81千万级大表查询优化图书馆大翻新
82消息队列高可靠 + 死信队列邮局退回机制
83云原生与容器化部署外卖预制菜
84单元测试 vs 集成测试 vs E2E造车质检
85设计模式实战——策略模式打车软件选车型

第77题:Java 21 虚拟线程

一图看清

传统平台线程:1任务1线程,阻塞时占着不放,池化复用,昂贵(~1MB栈+系统调用)
虚拟线程:JVM管理轻量级线程,阻塞时自动从载体线程卸载,无需池化,廉价
  相同Thread API,百万级并发,适合大量I/O阻塞操作,不适合CPU密集短任务

比喻记忆:共享管家 vs 专属服务员

  • 传统线程:每桌客人配专属服务员。客人看菜单犹豫时,服务员站旁边干等(线程阻塞),啥也干不了。100桌就得雇100个服务员,人力成本爆表。
  • 虚拟线程:5个万能管家服务1000桌。A犹豫时管家立刻去B倒水,去C结账。管家随身笔记(可动态伸缩的栈)记录每桌当前状态,随时回来接着服务。客人完全不觉得有差,人力成本骤降。

🔍 核心差异

对比点传统平台线程虚拟线程
本质OS线程包装JVM管理轻量对象
数量上限几千~几万百万级
创建成本高(~1MB栈)极低(动态栈)
阻塞行为占用OS线程不放自动卸载,释放载体
池化必须池化复用无需池化

💡 一句话总结:虚拟线程让阻塞等待不再浪费CPU资源,百万并发不是梦,同步代码享异步性能。

第78题:Spring WebFlux vs Spring MVC

一图看清

Spring MVC:Servlet同步阻塞模型,一个请求一个线程,堆栈大,并发有限
Spring WebFlux:基于Reactor/Netty,异步非阻塞,少量线程处理大量连接
  需要全链路响应式(数据库驱动、Redis驱动均需响应式)才有效

比喻记忆:自助点餐机 vs 柜台

  • MVC:每个顾客配一个收银员,顾客犹豫时收银员干等。100个顾客要100个收银员。
  • WebFlux:几台自助点餐屏幕,顾客自己慢慢看慢慢选,屏幕同时服务几十人。少量屏幕就能应对大批顾客。
  • 前提:后厨也得是高效的——从点餐、做菜到出餐全链路都得快(全链路响应式),单点快而做菜慢也没用。

🔍 核心差异

对比点Spring MVCSpring WebFlux
底层Servlet(同步阻塞)Netty/Reactor(异步非阻塞)
线程模型一请求一线程少量线程高并发
适用传统CRUD高并发I/O、网关
前提无需全链路响应式

💡 一句话总结:MVC一请求一线程,WebFlux少量线程高并发,异步非阻塞,需全链路配合。

第79题:Sealed Class + 模式匹配优化代码

一图看清

传统写法:if (shape instanceof Circle) { Circle c = (Circle) shape; c.area(); }
           else if (...) ... → instanceof地狱,漏分支运行时报错

Sealed Class (JDK17):permits Circle, Rectangle → 编译器知道所有子类
模式匹配 switch (JDK21正式):自动类型判断 + 解构,无需强转,编译器检查完备性

效果:漏分支编译器直接报错,代码安全简洁

比喻记忆:食堂自动打菜机

  • 传统写法:阿姨拿勺子每道菜看一遍,“这是宫保鸡丁吗?舀一勺”。“这是鱼香肉丝吗?舀一勺”——每种菜都要问。
  • Sealed Class:食堂公示今天只供应宫保鸡丁、鱼香肉丝、西红柿炒蛋(permits)。不可能有第四道。
  • 模式匹配:自动打菜机,按“鱼香肉丝”按钮,机器自动识别、装盘、出餐。绝不会装错菜。
  • 组合效果:哪天新增“麻婆豆腐”,机器直接报红(编译错误),逼你加新按钮。杜绝遗漏。

🔍 特性拆解

特性JDK版本作用
Sealed ClassJDK 17permits明确允许的子类列表
模式匹配 for switchJDK 21正式自动类型判断+解构,无需强转
记录类(Record)JDK 16自动生成构造/getter/equals

💡 一句话总结:Sealed限定子类范围,模式匹配省去强转,编译器检查完备性,安全简洁。

第80题:JVM / 数据库调优实战案例

一图看清

JVM调优典型场景:
  现象:频繁Full GC,服务卡顿
  排查:jstat -gc → 老年代持续增长 → jmap dump → MAT分析
  根因:SQL结果集未及时关闭,大对象不断进入老年代
  解决:连接池加泄露检测 + try-with-resources + 增大年轻代

数据库调优典型场景:
  现象:慢查询,多表关联全表扫描
  排查:EXPLAIN → type=ALL,无索引 → 创建联合索引(user_id, create_time)
  效果:4s → 20ms
  PG额外动作:VACUUM ANALYZE更新统计信息

比喻记忆:医生看诊

  • 望闻问切:jstat监控=体温表,dump堆=拍CT,GC日志=问诊记录,EXPLAIN=检查路线图。
  • 开药:调JVM参数=调整作息饮食,加索引=补充营养,改代码=改变不良生活习惯。
  • 复诊:上线后再监控,确认问题是否解决。

💡 一句话总结:监控定位现象→dump/EXPLAIN定位根源→代码或参数修复→上线验证,先定位再下药。

第81题:千万级大表查询优化(MySQL vs PostgreSQL)

一图看清

通用三板斧:
  合适索引(覆盖索引优先)、避免SELECT *、分区表、冷热数据归档、读写分离

MySQL方案:
  EXPLAIN关注type和Extra,避免ALL和Using filesort/Using temporary
  分批LIMIT,必要时分库分表中间件(ShardingSphere)

PostgreSQL独有优势:
  BRIN索引 → 极小体积处理数十亿行的顺序时间字段
  GIN/GiST → JSONB和全文检索的高效索引
  并行查询 → max_parallel_workers提升聚合速度
  物化视图 → 复杂聚合结果预计算
  VACUUM ANALYZE → 定期更新统计信息

比喻记忆:图书馆大翻新

  • 索引:目录卡片,查书名不用走遍全馆。
  • 分区:按年代分展区,找2020年代的书只跑一个区。
  • 归档:冷门书送地下室,热门书留一楼。
  • BRIN:每个书架只贴“本书架:1990~2000”。找1995的跳过前面20个架。
  • 并行查询:把查询任务分给多个人同时在不同书架找,最后汇总。

💡 一句话总结:索引+分区+归档是通用三板斧,PG有BRIN和并行查询两大独门杀器。

第82题:消息队列高可靠 + 死信队列设计

一图看清

消息可靠三要素:
  持久化 → 消息写入磁盘
  生产者确认 → Broker Ack确认收到
  消费者手动ACK → 处理完才确认

死信队列触发条件:
  消息被拒绝(basic.reject)、TTL超时、队列满、重试次数耗尽

处理流程:原队列 → 重试N次 → 转入死信队列 → 人工处理或定时重新投递

RabbitMQ:声明死信交换机+队列,设置 x-dead-letter-exchange
Redis Stream:XPENDING查未确认,XCLAIM转移超时消息

比喻记忆:邮局退回机制

  • 正常投递:邮递员送信,敲门有人签收(手动ACK),完成。
  • 重试:没人签收?第二天再来,连续3天。
  • 死信:3次都失败,退回邮局死信处(死信队列),贴条“无法投递——查无此人”。管理员定期来检查死信,决定重新投递还是销毁。
  • 兜底:如果有人投诉一直没收到信(对账),人工介入查到死信,重发。

💡 一句话总结:消息靠持久化+确认+重试保可靠,重试耗尽入死信,人工兜底。

第83题:云原生与容器化部署对Java的影响

一图看清

镜像体积 → GraalVM Native Image / jlink裁剪JRE → 秒级启动,几十MB
启动速度 → Spring Boot 3+ AOT编译、类预解析
内存感知 → JDK 8u191+ UseContainerSupport(默认开启,JDK21进一步优化)
优雅下线 → K8s preStop hook + Spring graceful shutdown
健康检查 → readiness / liveness probe
配置外挂 → ConfigMap / Secret,分离配置与镜像

比喻记忆:外卖预制菜 vs 现场炒菜

  • 传统部署:厨师现场炒菜,备菜慢(启动慢),占厨房大(内存多),每盘口味可能有差异(环境差异)。
  • 容器化:预制菜包,开袋加热就吃(秒级启动),每包规格一致(环境一致性),吃多少加热多少(弹性伸缩)。
  • GraalVM Native Image:即食罐头,打开就吃(本地可执行文件),极小(几十MB),启动毫秒级。

🔍 容器化六大影响

影响方案
镜像体积GraalVM Native Image、jlink
启动速度AOT编译、类预解析
内存感知UseContainerSupport(JDK8u191+默认)
优雅下线preStop hook + graceful shutdown
健康检查readiness/liveness probe
配置外挂ConfigMap/Secret

💡 一句话总结:容器化要求Java轻量化、快启动、感知容器限制、优雅退场。

第84题:单元测试 vs 集成测试 vs E2E

一图看清

测试金字塔(从底到顶):
  单元测试(最多):方法/类级,mock所有外部依赖,极快,精准定位
  集成测试(中量):多模块交互,可用Testcontainers启真实数据库
  E2E测试(少量):全链路到界面,真实环境,慢,维护成本高

覆盖率工具:JaCoCo设置阈值,CI/CD中管控质量门槛
注意:覆盖率数值≠测试质量,需结合Code Review和变异测试

比喻记忆:造车质检三步

  • 单元测试:零件质检——每个螺丝、轮胎单独测是否合格。快,出问题精准定位到哪个零件。
  • 集成测试:部件装配检测——发动机装到车身上,启动看传动是否正常。验证模块间配合。
  • E2E测试:整车路试——开上真实道路,0加速到100,刹停,过弯。最真实但最贵,不会每辆车都做全套。

🔍 三种测试对比

类型范围速度Mock维护成本
单元测试方法/类极快mock所有外部依赖低
集成测试多模块/数据库中等可用Testcontainers真实DB中
E2E全链路慢不mock高

💡 一句话总结:单元测零件、集成测装配、E2E测整车,金字塔底层铺厚上层才稳。

第85题:设计模式实战——策略模式案例

一图看清

策略接口(PaymentStrategy):pay(amount)
  ├─ 微信支付(WechatPay):调用微信API
  ├─ 支付宝(AliPay):调用支付宝API
  └─ 银行卡(BankPay):调用银行接口

上下文(PaymentContext):持有一个策略引用,对外屏蔽调用细节
新增支付方式:只需新增策略实现类,不改旧代码 → 开闭原则

比喻记忆:打车软件选车型

  • 策略接口:“出行方式”,定义从A到B的方法。
  • 具体策略:快车=省钱算法派轿车,专车=舒适算法派豪华车,拼车=最省钱算法顺路拼人。
  • 上下文:你只需说“从公司回家”,系统根据你选的车型自动匹配策略。
  • 扩展性:哪天滴滴增加“无人车”,只需新增一个无人车策略实现接口,其他代码不用改——对扩展开放,对修改封闭。

🔍 模式三要素

角色职责
Strategy接口定义算法族
ConcreteStrategy具体算法实现
Context上下文持有策略,对外屏蔽细节

💡 一句话总结:策略模式=定义算法接口+多实现,调用方选策略,新增不改旧代码,符合开闭原则。


🎯 全系列完结

85道题,6篇文章,从基础到高阶,从HashMap到秒杀系统。

回顾这一路:方法论 → 基础核心29题 → 并发+JVM 14题 → Spring+数据库17题 → Redis缓存8题 → 高阶架构8题 → 高阶特性实战9题。

每一道题都是“图解+比喻+一句话总结”的四层结构,目的不是让你背,而是让你看见画面、想起故事、讲出不一样的内容。

如果这套题库对你有帮助,评论区告诉我哪道题的比喻让你印象最深。还想看到什么样的内容?面试回答技巧、大厂真题拆解、项目经验包装……告诉我,下一系列见。


上一篇: 高阶架构设计篇
🎯 全系列85题到此结束。如果这套题库对你有帮助,评论区告诉我哪道题的比喻让你印象最深。
想系统深入地掌握Java,从入门到拿到Offer,姊妹系列《Java 100天进阶之路》正在持续更新,每天30分钟,100天达到就业水平。
👉 《Java 100天进阶之路 · 完整目录》
👉 点击关注我 📂 返回全系列导航
📌 除了Java,我也在深挖智能物流实战(出版社WMS、托盘调度、机器学习落地)。如果你对技术在不同领域的实战感兴趣,欢迎点击我的头像,看看专栏《出版社物流WMS智能调度实战》。技术相通,思路可鉴。


国产安全芯片在密码算法国密体系下的性能适配策略 国密体系即国家商用密码体系,是保障信息安全的核心技术体系。自20世纪90年代末起步,国密体系经历了从无到有、从弱到强的发展历程。1999年,国家密码管理局成立,标志着国密体系的正式建立。2000年,国密SM1算法首次发布,开启了国密算法的标准化进程。此后,SM2、SM3、SM4等算法陆续推出,形成了完整的对称与非对称密码算法体系。:2010年,国密标准正式纳入国家标准体系,国密算法在金融、政务、通信等关键领域的应用得到明确规范。 阅读详情

相关推荐

SONiC (6) - SONiC 源码框架分析

https://github.com/sonic-net/sonic-utilitieshttps://github.com/sonic-net/sonic-snmpagenthttps://github.com/sonic-net/sonic-linux-kernelhttps://github.com/sonic-net/sonic-platform-commonhttps://github.com/sonic-net/sonic-platform-daemons以下是在 SONiC 中运行的容器列表:

qq_49477505的博客 1317

静态脱敏系统技术趋势分析

静态脱敏系统技术趋势分析要回答的不是买了哪些新功能,而是哪些能力正在变成出厂默认。本文从确定性脱敏、规则版本化、可逆受控与导出验签四条线,拆解趋势判断的可复算落点,并给出采购方可以直接核对的清单。

xingxiuer的博客 267

第四章 汇川技术InoProShop入门之串口自由协议解读

摘要: 串口自由协议是工业自动化中针对特定需求设计的自定义通信协议,具有高度灵活性和针对性,适用于小型设备、实时控制等场景。其核心包括自定义帧结构(起始符、地址码、数据区、校验位等)和通信规则(波特率、交互机制)。相比标准协议,自由协议效率更高但兼容性弱,设计时需注重可靠性、效率和可扩展性,适用于定制化或高实时性需求,如传感器数据采集或老旧设备改造。典型应用需平衡精简帧结构与抗干扰能力,同时预留扩展空间。

zyfucking2010的博客 2203

Maven 下载与配置教程(新手友好版)

本文档手把手教你在 Windows 系统上安装和配置 Maven,全程从官方渠道下载,安全可靠。

qq_36085846的博客 251

基于STM32的浴室环境智能控制系统设计

摘要:本文设计了一款基于STM32F103的智能卫浴系统,通过多传感器协同检测浴室环境参数。系统采用DS18B20检测环境与卫浴温度,DHT11监测湿度,MQ-135检测空气质量,光敏电阻测量光照强度,D203S人体热释电模块检测人员存在。当检测到异常参数时,系统自动启动相应调节功能:温度异常时控制加热/制冷继电器,湿度过高时启动通风除湿,空气质量差时进行换气,光照不足且有人时自动开灯。系统支持按键、蓝牙APP和语音三种控制方式,可手动设置参数阈值、切换防雾模式、控制音乐播放等功能。实验结果表明,该系统能有

3254968421的博客 471

Silvaco TCAD 半导体器件仿真全攻略:从入门到精通

本文介绍了Silvaco TCAD半导体器件仿真平台的核心功能与应用方法。主要内容包括: Silvaco TCAD的核心模块组成(ATHENA工艺仿真和ATLAS器件仿真)及其在半导体研发中的重要作用,能够通过数值仿真预测器件电学特性,显著降低研发成本。 环境配置要点,包括内存分配、文件目录管理和许可证验证,为仿真工作提供基础保障。 仿真核心概念:详细讲解了网格划分策略和物理模型选择原则,强调基于物理直觉的自适应加密网格方法。 以PN结二极管为例,提供了完整的仿真代码示例,涵盖从网格定义、掺杂设置到结果分析

huanghm88的专栏 186

构造函数表达式的值类别是:prvalue

C++ 中构造表达式 T() 的结果为 prvalue,因其本质是“对象的初始化配方”而非已有对象。这一设计使编译器能强制执行复制消除(C++17起),直接在目标位置构造对象,实现零开销优化。即使类型不可拷贝或不可移动,也能合法初始化。同时,prvalue绑定引用时物化为xvalue,延长生命周期。该机制清晰区分初始化、移动与持久对象,是返回值优化和高效资源管理的语言基础。

jimy1的博客 481

IEEE S&P 2026 大模型安全论文整理

本文梳理了 IEEE S&P 2026(第47届 IEEE 安全与隐私研讨会)中与 LLM Safety 相关的论文,涵盖大模型越狱攻击、防御与对齐、隐私保护、RAG 安全、多模态大模型安全、智能体安全、图-LLM 安全、工具链安全及生成式 AI 安全与隐私等方向。

CSPhD-winston的博客 1312

LeetCode100 1.两数之和

暴力枚举法时间复杂度为O(n²),空间O(1),直观但效率低。优雅解法利用HashMap,遍历中先查补数、后存当前值,平均时间复杂度O(n),空间O(n)。虽最坏情况(哈希冲突严重)理论可达O(n²),但Java 8+中链表超过8个元素转为红黑树,最坏退化至O(n log n),实际性能优异。

Shaoxingzong的博客 301

【实验必备】对AffectNet数据集进行人脸对齐的小Demo

本文首先简单介绍了AffectNet数据集,及人脸关键点等背景知识,接着Po出了人脸对齐的代码及效果展示。注:本文代码参考自FG2021的Emotion-GCN的开源代码,具有一定的可靠性,欢迎大家学习!

信小海 2656

【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码

1 简介 数字波束形成技术是天线波束形成原理与数字信号处理技术相结合的产物,其广泛应用于阵列信号处理领域.由于电磁工作环境的恶化和大量射频干扰的存在,在极低的信干噪比(SINR)条件下进行目标检测和信息提取十分困难.对于阵列系统,往往采用自适应数字波束形成(ADBF)技术,来抑制强干扰和方向性干扰对有用信号的影响.介绍了数字波束形成器的基本原理及其DSP的实现结构.​ 2 完整代码 clc;clear all;close all;%%%%%%%%%%%%%%%%%一维DBF%%%%%%%%%%%%%

qq_59747472的博客 7259

生产环境 Tomcat 200 线程跑满并报连接池超时:一次虚拟线程阻塞点排查

开启虚拟线程后线程告警消失,HikariCP 连接池超时却更早出现。先用 JFR 事件排除 `synchronized` 阻塞,再按并发预算重算连接池容量。

昨日种种,皆成今我。今日种种,皆成新我。 324

YOLOv8优化:特征融合 | 金字塔稀疏 Transformer(PST)——一个轻量级、即插即用的模块 | 25年7月最新成果

将 PST 嵌入当前最先进的实时检测模型(YOLOv11-N/S/M)后,在 MS COCO 上的 mAP 分别提升 0.9%、0.5%、0.4%,而延迟增加极小。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 602

移动端 CPU 调度分析:线程亲和性、大小核迁移与卡顿

移动端卡顿常非代码瓶颈,而是调度问题。线程迁移、缓存失效、优先级反转、队列竞争等会显著增加等待时间,使相同工作耗时上升。需通过调度时间线区分运行与等待成本,分析核心类别、频率变化、锁状态及线程池负载。验证应控制变量,避免误判。修复关键在优化同步、控线程数、调优先级,而非盲目绑核。

m0_59437018的博客 247

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DDD(领域驱动设计)篇四:退费 + 支付,三层 vs DDD 各撸一遍

DDD 不是一门新技术,而是一种纪律——业务规则集中放、用业务的语言放、放在划清的边界内。三层架构没有错,它只是没有回答"规则放哪"这个问题;DDD 回答了,代价是多写几个类、多学几个概念。 代码会写了,再读书就不抽象了。推荐顺序: 《实现领域驱动设计》(Vaughn Vernon,"红书")——比原著(蓝书)好读得多,先读前半部分; 蓝书挑着读:只读"统一语言""限界上下文"两章。

Good good study,day day up 71

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

欧盟电子发票(XRechnung/Peppol/ZUGFeRD)踩坑记:用 Python 不装 Java 跑官方校验规则

德法比推行企业间结构化电子发票(EN 16931)。本文讲金额怎么算才能过校验、怎么用 Python + saxonche 不装 Java 跑 XRechnung/Peppol 官方 Schematron,以及 Leitweg-ID 校验位这类官方规则查不到的坑,并介绍开源工具 eu-einvoice。

weixin_38859100的博客 237

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring Boot的配置文件

本文介绍了Spring Boot中配置文件的使用,重点对比了application.properties与application.yml两种格式。properties为键值对形式,注释易乱码;yml语法更简洁,支持层级结构,优先级高于properties。通过@Value、@ConfigurationProperties可读取配置项,后者支持对象绑定。配置文件需统一格式,避免冲突。同时介绍了配置项读取流程及注解使用注意事项。

captain376的博客 240

若依项目新建业务模块

本文介绍了在若依框架中新建业务子模块的完整步骤:通过Maven创建子模块,引入ruoyi-framework依赖;在父工程中锁定子模块版本;在ruoyi-admin中添加依赖并刷新Maven;最后重启项目即可成功加载新模块。图文结合,清晰展示操作流程,确保模块集成顺利。

weixin_50379372的博客 158

基于 Spring Cloud Alibaba 的微服务架构设计与落地实践

本文介绍基于Spring Cloud Alibaba的微服务架构方案,整合Nacos、Sentinel、Seata、RocketMQ等组件,实现服务注册发现、配置管理、流量防护、分布式事务与消息驱动。通过统一版本管理、四层分层架构与按业务拆分的服务设计,结合Feign实现服务调用,配合动态配置刷新与降级容错,构建高可用、可扩展的微服务系统。

薛之谦 205

LeetCode Hot 100 · 双指针 3 题 Java

LeetCode Hot 100 · 双指针 3 题,覆盖 11 盛最多水的容器、15 三数之和、42 接雨水,主线是排序 / 双指针 / 前缀最值与「短板效应」。

2401_88612756的博客 355

《On Java 中文版 基础卷》阅读笔记 实现隐藏 11

《On Java 中文版 基础卷》阅读笔记 实现隐藏 11

道友 168

第 3 篇:Ubuntu 配置 JDK 17 环境

本文介绍在 Ubuntu 24.04 上通过 APT 安装并配置 OpenJDK 17 的完整流程。包括查看可用版本、安装 JDK 17、验证安装、设置 JAVA_HOME 环境变量(推荐使用 /etc/profile.d/java.sh 方式)、多版本切换及测试程序验证。步骤简洁稳定,适用于开发与部署 Spring Boot 等 Java 应用场景。

John_DHui的博客 231

Spring Boot + Maven 接入 Allatori:从普通打包到可选混淆发布

本文介绍如何在 Spring Boot 工程中通过 Maven 集成 Allatori,实现按需启用的混淆打包,并同时保留普通包和混淆包。文章提供完整的 POM 与混淆配置,解释构建顺序、名称保留规则,以及 Spring、MyBatis、JSON 序列化和反射场景下的兼容性处理。同时结合实际接入过程,记录变量替换、重复打包等常见问题,说明如何验证混淆产物、归档映射日志和接入 CI,方便首次配置或后续迁移时照着操作。

jianxuan的专栏 358

SpringBoot信创项目怎么验收?从数据库迁移到交付证据

从真实信创实验记录出发,拆解版本基线、SQL审计、运行时适配与业务闭环,给出能够落实到交付文档的验收方法。

ruoyioffice的博客 381

【Linux】linux线程同步(条件变量的详解与实现)

本文系统讲解了POSIX条件变量的使用,涵盖初始化、等待、唤醒、超时及销毁等核心函数。强调条件变量需与互斥锁配合,通过while循环重新检查共享状态,避免虚假唤醒和竞态。重点指出:线程等待的是条件而非通知,通知不会被保留,修改共享状态必须持锁。结合生产者-消费者模型示例,阐明正确使用方式,并总结常见错误,如误用if、依赖唤醒顺序等。核心原则为“等待条件,而非通知”,确保多线程同步安全可靠。

2401_85487070的博客 195

网约车App开发方案借鉴:技术选型与上架避坑指南

本文拆解网约车App从技术选型到上架的全流程,涵盖原生与跨端抉择、实时消息与地图SDK成本、后台定位保活、厂商推送适配、订单状态幂等等关键问题,附可执行检查清单与成本反推方法,帮助团队少走弯路。

HZMSY001的博客 172
上一篇: 《Java 100 天进阶之路》第21篇:Java Object类
下一篇: 《Java 100 天进阶之路》第22篇:Java字符串简介
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值