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

深入剖析 JVM:从组成原理到调优实践

深入剖析 JVM:从组成原理到调优实践

  • 深入剖析 JVM:从组成原理到调优实践
    • 一、JVM 组成架构:运行 Java 程序的 “幕后引擎”
      • 1.1 内存结构:数据存储的 “分区管理”
      • 1.2 执行引擎:字节码的 “翻译官”
      • 1.3 本地方法接口:连接 Java 与本地代码
    • 二、类加载器:类文件的 “加载枢纽”
      • 2.1 类加载器分类
      • 2.2 双亲委派机制:类加载的 “安全策略”
      • 2.3 类加载过程:加载→验证→准备→解析→初始化
    • 三、垃圾回收:堆内存的 “清理工”
      • 3.1 垃圾对象判断算法
      • 3.2 垃圾回收算法
      • 3.3 垃圾回收器
    • 四、JVM 调优实践:让程序运行更高效
      • 4.1 调优工具
      • 4.2 常见调优场景
      • 4.3 调优案例

深入剖析 JVM:从组成原理到调优实践

一、JVM 组成架构:运行 Java 程序的 “幕后引擎”

JVM(Java Virtual Machine)是 Java 程序运行的基础环境,其核心组成可分为三大模块:内存结构、执行引擎、本地方法接口。
在这里插入图片描述

1.1 内存结构:数据存储的 “分区管理”

在这里插入图片描述

  • 堆(Heap):JVM 中最大的内存区域,用于存储对象实例。几乎所有对象都在堆上分配内存,是垃圾回收的主要区域。根据对象存活周期,又分新生代(Eden 区、Survivor 区)和老年代。

  • 方法区:存储类信息、常量、静态变量等。JDK 8 后,方法区由元空间(Meta Space)实现,使用本地内存,避免了 “永久代” 的内存溢出问题。在这里插入图片描述

  • 虚拟机栈:线程私有,存储方法执行时的栈帧,包括局部变量表、操作数栈、动态链接等。每个方法调用对应一个栈帧入栈,方法执行完毕出栈。在这里插入图片描述

  • 本地方法栈:与虚拟机栈功能类似,用于本地方法(Native 方法)的执行。

  • 程序计数器:记录当前线程执行字节码的位置,是唯一不会出现内存溢出的区域。

1.2 执行引擎:字节码的 “翻译官”

  • 解释器:逐行解释执行字节码,启动速度快,但执行效率低。
  • 即时编译器(JIT):运行时将热点代码(频繁执行的代码)编译为本地机器码,提升执行效率。HotSpot 虚拟机包含 C1(客户端编译器,优化简单代码)和 C2(服务器编译器,深度优化复杂代码)。
  • 垃圾回收器:管理堆内存,回收不再使用的对象,释放内存空间。
    在这里插入图片描述

1.3 本地方法接口:连接 Java 与本地代码

允许 Java 调用本地原生代码(如 C/C++),通过 JNI(Java Native Interface)实现,拓展 Java 对底层系统的操作能力。

二、类加载器:类文件的 “加载枢纽”

在这里插入图片描述

2.1 类加载器分类

  • 启动类加载器(Bootstrap ClassLoader):C++ 实现,加载 Java 核心类库(如 rt.jar 中的 java.lang 包),是最顶层的类加载器。
  • 扩展类加载器(Extension ClassLoader):加载 Java 扩展类库(如 jre/lib/ext 目录下的类),Java 代码实现。
  • 应用类加载器(Application ClassLoader):加载用户自定义类和应用依赖的类库(如项目 classpath 下的类),也是多数 Java 程序的默认类加载器。

2.2 双亲委派机制:类加载的 “安全策略”

  • 工作流程:当类加载器收到类加载请求,先委托父类加载器加载,父类加载器依次向上委托,直到启动类加载器。若父类加载器无法加载,再由当前类加载器加载。
  • 优势:避免类的重复加载,保证 Java 核心类库的安全性。例如,用户自定义的 java.lang.String 不会被加载,始终使用启动类加载器加载的官方版本。

2.3 类加载过程:加载→验证→准备→解析→初始化

  • 加载:通过类全限定名获取二进制字节流,生成类的 Class 对象。
  • 验证:确保字节流符合 JVM 规范,防止恶意代码破坏系统。
  • 准备:为类变量分配内存并设置初始值(如 static int a = 1; 准备阶段 a 初始值为 0)。
  • 解析:将符号引用转为直接引用,优化类之间的访问速度。
  • 初始化:执行类构造器 <clinit>(),初始化类变量和静态代码块。

三、垃圾回收:堆内存的 “清理工”

3.1 垃圾对象判断算法

  • 引用计数法:给对象添加引用计数器,引用增加计数 + 1,减少计数 - 1,计数为 0 则回收。存在循环引用问题,JVM 未采用。
  • 可达性分析算法:以 GC Roots(如虚拟机栈变量、静态变量等)为起点,通过引用链标记存活对象,未标记的对象可回收,是 JVM 主流算法。

3.2 垃圾回收算法

  • 标记 - 清除算法:先标记可回收对象,再统一清除。存在内存碎片问题。
  • 标记 - 整理算法:标记后,将存活对象向一端移动,清除端边界外内存,解决碎片问题,但耗时较长。
  • 复制算法:将内存分为两块,存活对象复制到另一块,清除原块。适合新生代,因新生代对象存活率低。
  • 分代收集算法:结合不同区域特点,新生代用复制算法,老年代用标记 - 清除或标记 - 整理算法。

3.3 垃圾回收器

  • Serial 收集器:单线程收集器,简单高效,适合客户端应用。
  • ParNew 收集器:Serial 多线程版本,常与 CMS 收集器配合。
  • Parallel Scavenge 收集器:关注吞吐量,适合后台计算任务。
  • CMS 收集器:以获取最短回收停顿时间为目标,采用标记 - 清除算法,可能产生碎片。
  • G1 收集器:将堆划分为多个区域,跟踪区域垃圾价值,优先回收价值高的区域,适合大内存、低延迟场景。

四、JVM 调优实践:让程序运行更高效

在这里插入图片描述

4.1 调优工具

  • JConsole:图形化工具,监控堆内存使用、线程状态等。
  • JVisualVM:功能更强大,支持生成堆转储快照、分析内存泄漏。
  • GC 日志分析:通过 -XX:+PrintGCDetails 打印 GC 日志,分析 GC 频率、耗时,调整堆参数。

4.2 常见调优场景

  • 内存溢出(OOM):通过分析堆转储文件,定位大对象或内存泄漏代码。调整堆大小(如 -Xmx-Xms)。
  • GC 频繁:若新生代 GC 频繁,可调整新生代与老年代比例(如 -XX:NewRatio);若老年代 GC 频繁,检查大对象分配是否合理。
  • 性能优化:针对热点代码,调整 JIT 编译参数(如 -XX:CompileThreshold),提升编译效率。

4.3 调优案例

某电商应用频繁出现 Full GC,通过分析 GC 日志发现老年代内存增长快。检查代码发现,缓存未设置过期时间,导致对象长期占用老年代。优化缓存策略,添加过期机制,同时调整堆参数 -Xmx4g -Xms4g -XX:MaxTenuringThreshold=15,降低 Full GC 频率,系统响应时间显著缩短。

JVM 作为 Java 程序的核心运行环境,深入理解其组成、类加载机制、垃圾回收原理及调优方法,能帮助开发者更好地优化程序性能,解决运行时问题,打造高效稳定的 Java 应用。

相关文章:

深入剖析 JVM:从组成原理到调优实践

深入剖析 JVM&#xff1a;从组成原理到调优实践 深入剖析 JVM&#xff1a;从组成原理到调优实践一、JVM 组成架构&#xff1a;运行 Java 程序的 “幕后引擎”1.1 内存结构&#xff1a;数据存储的 “分区管理”1.2 执行引擎&#xff1a;字节码的 “翻译官”1.3 本地方法接口&…...

rust学习笔记21-闭包

在 Rust 中&#xff0c;闭包&#xff08;Closures&#xff09; 是一种可以捕获其环境中的变量的匿名函数。它们非常灵活&#xff0c;既可以作为普通函数使用&#xff0c;也可以捕获和操作定义它们的作用域中的变量。闭包是 Rust 中处理短小逻辑代码块的强大工具&#xff0c;特别…...

Redis常见面试问题汇总

Redis 面试笔记整理 一、Redis 基础知识1. Redis 概述Redis 是什么&#xff1f;主要特点有哪些&#xff1f;Redis 和 Memcached 的区别是什么&#xff1f;Redis 是单线程还是多线程&#xff1f;为什么单线程还能高效&#xff1f;Redis 6.0 之后的多线程模型是怎样的&#xff1f…...

网络安全中的“后门”:概念、类型、作用与攻防技术

目录 什么是后门&#xff1f; 后门的常见类型 2.1 按植入方式分类 2.2 按功能分类 后门在安全测试中的作用 后门的玩法与免杀技术 4.1 常见后门技术 4.2 如何实现免杀&#xff08;Bypass AV&#xff09; 如何检测和防御后门&#xff1f; 总结 1. 什么是后门&#xff…...

AIGC1——AIGC技术原理与模型演进:从GAN到多模态融合的突破

引言 近年来&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术迅速发展&#xff0c;从早期的简单文本生成到如今能够创作高质量图像、视频甚至3D内容&#xff0c;其核心驱动力在于生成模型的持续优化与多模态融合技术的突破。本文将探讨生成对抗网络&#xff08;…...

Python爬虫-爬取大麦网演出详情页面数据

前言 本文是该专栏的第50篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者以大麦网平台为例。基于Python,实现获取演出详情页面的演出信息。 废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内…...

opencv图像处理之指纹验证

一、简介 在当今数字化时代&#xff0c;生物识别技术作为一种安全、便捷的身份验证方式&#xff0c;正广泛应用于各个领域。指纹识别作为生物识别技术中的佼佼者&#xff0c;因其独特性和稳定性&#xff0c;成为了众多应用场景的首选。今天&#xff0c;我们就来深入探讨如何利…...

玛卡巴卡的k8s知识点问答题(五)

17. Init 类型容器有什么特点&#xff0c;主要用途&#xff1f; 特点&#xff1a; 启动顺序&#xff1a;Init 容器在普通容器启动之前运行&#xff0c;必须先完成所有 Init 容器后&#xff0c;Pod 的主容器才会启动。 顺序执行&#xff1a;如果定义了多个 Init 容器&#xff…...

怎样提升大语言模型(LLM)回答准确率

怎样提升大语言模型(LLM)回答准确率 目录 怎样提升大语言模型(LLM)回答准确率激励与规范类知识关联类情感与语境类逆向思维类:为什么不,反面案例群体智慧类明确指令类示例引导类思维引导类约束限制类反馈交互类:对话激励与规范类 给予奖励暗示:在提示词中暗示模型如果回…...

CSP-J2022 山东 题解

[CSP-J2022 山东] 植树节 题目背景 受疫情影响&#xff0c;山东省取消了 CSP-J 2022 认证活动&#xff0c;并于次年三月重新命题&#xff0c;在省内补办比赛。 题目描述 植树节快要到了&#xff0c;学校要组织志愿者去给树苗浇水。 有一排树苗&#xff0c;编号依次是 0 ,…...

strcpy和strncpy和strcat和strncat和strstr和strtok函数使用及实现

目录 strcpy和strncpy函数的原理及实现 strcpy函数 my_strcpy优化代码 函数返回值的疑惑 strncpy函数 strncpy自定义 完整代码 字符串追加函数 strcat和strncat strcat函数 讲解和使用 过程解析 strcat代码 strcat无法给自己追加 strncat函数 讲解和使用 过程解…...

前端开发使用若依的优势

若依(RuoYi)前端框架是基于主流技术栈(如Vue.js或React)构建的企业级前端解决方案,其优势主要体现在以下几个方面: 1. 开箱即用的企业级功能 权限管理:集成动态路由、按钮级权限控制(RBAC模型),适配后台权限系统,无需重复开发。多标签页:支持类似浏览器的多标签页操…...

网络空间安全(44)Web实战篇

一、Web应用程序安全防护 输入验证 严格验证用户输入&#xff1a;对所有用户输入的数据进行合法性检查&#xff0c;防止恶意用户通过输入恶意数据攻击应用程序。验证应包括对表单数据、URL参数、Cookie等进行检查&#xff0c;确保输入的数据符合预期格式和范围。使用安全的编码…...

python列表常用方法大全

列表&#xff08;List&#xff09;是 Python 中最常用的数据结构之一&#xff0c;它是一个有序、可变的集合&#xff0c;可以存储任意类型的元素。以下是列表的定义及常见用法&#xff0c;包括拼接、增加数据、插入数据、删除数据、计算差值、相加、清空等操作&#xff0c;与字…...

Warm-Flow过去、现在和未来都不会有商业版

Warm-Flow过去、现在和未来都不会有商业版 Warm-Flow从24年2月加入Dromara开源社区&#xff0c;也正是由于加入他&#xff0c;Warm-Flow才等到更多人的关注和帮助。 同时吸引了不少贡献者&#xff0c;有的也成为了Warm-Flow的成员。 因此为了回馈大家&#xff0c;也是为了War…...

3. 实战(一):Spring AI Trae ,助力开发微信小程序

1、前言 前面介绍了Spring boot快速集成Spring AI实现简单的Chat聊天模式。今天立马来实战一番&#xff0c;通过Trae这个火爆全网的工具&#xff0c;来写一个微信小程序。照理说&#xff0c;我们只是极少量的编码应该就可以完成这项工作。开撸~ 2、需求描述 微信小程序实现一…...

3.23周赛补题

感觉还要多练&#xff0c;有的题思路不难&#xff0c;但是赛时就没思路。 A const int N110,M1e410; int dp[N][M]; void solve(){int n,m;cin>>n>>m;vector<int>a(n1);forr(i,1,n){cin>>a[i];}dp[0][0]1;//没钱 没菜 就是一种情况forr(i,1,n){refor…...

libpng-1.6.47-windows编译

本文操作按照《c&c开源库编译指南》中内容规范编写&#xff0c;编译环境配置、工具下载、目录规划&#xff0c;及更多其他开源库编译方法请参考该文章。 c&c开源库编译指南&#xff1a;https://blog.csdn.net/binary0006/article/details/144086155 本文章中的源代码已…...

RabbitMQ高级特性--重试特性

目录 1.重试配置 2.配置交换机&队列 3.发送消息 4.消费消息 5. 运行程序观察结果 6. 手动确认 注意&#xff1a; 在消息传递过程中, 可能会遇到各种问题, 如网络故障, 服务不可用, 资源不足等, 这些问题可能导致消息处理失败. 为了解决这些问题, RabbitMQ 提供了重试机制, …...

热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab - Sony S-Log3 Cinematic LUTs

热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab – Sony S-Log3 Cinematic LUTs 我们最好的 Film Look S-Log3 LUT 的集合&#xff0c;适用于索尼无反光镜相机。无论您是在户外、室内、风景还是旅行电影中拍摄&#xff0c;这些 LUT 都经过优化&#xff0c;可为…...

基础认证-单选题(一)

单选题 1、下列关于request方法和requestlnStream方法说法错误的是(C) A 都支持取消订阅响应事件 B 都支持订阅HTTP响应头事件 C 都支持HttpResponse返回值类型 D 都支持传入URL地址和相关配置项 2、如需修改Text组件文本的透明度可通过以下哪个属性方法进行修改 (C) A dec…...

C++ 变量类型

C 变量类型 在C编程语言中&#xff0c;变量是存储数据的基本单元。变量类型决定了变量的存储方式和所占内存大小。了解C中的变量类型对于编写高效、可维护的代码至关重要。本文将详细介绍C中的各种变量类型&#xff0c;包括基本类型、复合类型和用户定义类型。 基本类型 C提…...

智能粉尘监测解决方案|守护工业安全,杜绝爆炸隐患

在厂房轰鸣的生产线上&#xff0c;一粒微小粉尘的聚集可能成为一场灾难的导火索。如何实现粉尘浓度的精准监控与快速响应&#xff1f;我们为您打造了一套"感知-预警-处置"全闭环的智能安全方案&#xff01; 行业痛点&#xff1a;粉尘管理的生死线 在金属加工、化工…...

美观快速的react 的admin框架

系统特色&#xff1a; - &#x1f3a8; 精心设计的UI主题系统&#xff0c;提供优雅的配色方案和视觉体验 - &#x1f4e6; 丰富完整的组件库&#xff0c;包含大量开箱即用的高质量组件 - &#x1f528; 详尽的组件使用示例&#xff0c;降低开发者的学习成本 - &#x1f680…...

CentOS 7 挂载与卸载文件系统笔记

挂载文件系统 挂载的基本概念 挂载是将存储设备&#xff08;如硬盘分区、U 盘、光盘等&#xff09;连接到 Linux 文件系统的特定目录&#xff08;挂载点&#xff09;&#xff0c;使得系统能够访问存储设备上的数据。 查看已挂载的文件系统 命令&#xff1a;mount 或 df -h mo…...

UE5学习笔记 FPS游戏制作28 显式玩家子弹数

文章目录 添加变量修改ShootOnce方法&#xff0c;设计时减少子弹&#xff0c;没有子弹不能开枪在UI上显示 添加变量 在Gun类中添加BulletNum和ClipSize两个参数 BulletNum是当前还有多少子弹&#xff0c;ClipSize是一个弹匣多少子弹 Rifle的ClipSzie设置为30&#xff0c;Laun…...

VRRP交换机三层架构综合实验

题目要求&#xff1a; 1&#xff0c;内网Ip地址使用172.16.0.0/16分配 说明可以划分多个子网&#xff0c;图中有2个VLAN&#xff0c;可以根据VLAN划分 2&#xff0c;sw1和SW2之间互为备份 互为备份通常通过VRRP&#xff08;虚拟路由冗余协议&#xff09;来实现。VRRP会在两个…...

QSettings用法实战(相机配置文件的写入和读取)

很多情况&#xff0c;在做项目开发的时候&#xff0c;将参数独立出来是比较好的方法 例如&#xff1a;相机的曝光次数、曝光时长等参数&#xff0c;独立成ini文件&#xff0c;用户可以在外面修改即可生效&#xff0c;无需在动代码重新编译等工作 QSettings便可以实现该功能 内…...

洛谷题单1-P1001 A+B Problem-python-流程图重构

题目描述 输入两个整数 a,b&#xff0c;输出它们的和&#xff08;∣a∣,∣b∣≤109&#xff09;。 输入格式 两个以空格分开的整数。 输出格式 一个整数。 输入输出样例 输入 20 30输出 50方式-print class Solution:staticmethoddef oi_input():"""从…...

分布式系统

一、分布式系统概述 1.1 为什么需要分布式系统&#xff1f; 核心驱动力&#xff1a; ​性能需求&#xff1a;单机性能受物理限制&#xff08;CPU/内存/IO&#xff09;&#xff0c;分布式系统通过并行计算突破瓶颈​可扩展性&#xff1a;水平扩展&#xff08;增加节点&#x…...

前端开发学习路线完整指南

前端开发学习路线完整指南 前端开发是一个不断发展的领域&#xff0c;涉及多个技术栈。本文将为你提供一条系统的前端学习路线&#xff0c;帮助你从零基础到熟练掌握前端开发技能。 1. 前置知识 在学习前端之前&#xff0c;了解一些基础知识会对你的学习过程有很大帮助。 计…...

Sa-Token核心功能解剖二( Session会话、 持久层Redis扩展 、全局侦听器 、全局过滤器、多账号体系认证、单点登录)

文章目录 概要功能结构图5.Session会话6.持久层扩展7.全局侦听器8.全局过滤器9.多账号体系认证10.单点登录 概要 Sa-Token核心功能解剖&#xff08;二&#xff09;&#xff0c;主要有&#xff1a; Session会话 —— 全端共享Session,单端独享Session,自定义Session,方便的存取…...

C++搜索

功能扩展说明&#xff1a; 图类封装&#xff1a;将图数据结构封装为类&#xff0c;提高代码复用性 最短路径查找&#xff1a;基于BFS实现未加权图的最短路径查找 路径重构&#xff1a;通过parent数组回溯构建完整路径 异常处理&#xff1a;当路径不存在时返回空向量 复杂度分析…...

NC,GFS、ICON 数据气象信息可视化--降雨量的实现

随着气象数据的快速发展和应用&#xff0c;气象信息的可视化成为了一项不可或缺的技术手段。它不仅能帮助气象专家快速解读数据&#xff0c;还能为公众提供直观的天气预报信息。今天&#xff0c;我们将从降雨量的可视化出发&#xff0c;带大家一起了解如何实现气象数据的可视化…...

Android SystemUI深度定制实战:QSPanel下拉状态栏动态日期显示全解析

一、需求背景与实现思路 在Android系统定制化开发中&#xff0c;SystemUI的下拉状态栏&#xff08;Quick Settings Panel&#xff0c;QSPanel&#xff09;是用户高频交互的核心模块。近期某产品需求提出&#xff1a;在下拉展开状态栏时&#xff0c;需在QSPanel的顶部区域动态显…...

Linux 部署 rocketmq centos7

mq部署方案 1、rocketmq 顺序消费记录 一个master &#xff0c;一个 brocker &#xff0c;多个group &#xff0c;多个topic&#xff0c;采用集群消费模式。 注意 一个group 对应一个 topic。 生产者 和 消费者 可以有多个&#xff0c;但是 主题和分组 都是一对一的。这样保证…...

02_MySQL安装及配置

文章目录 一、下载二、安装及配置2.1、选择安装类型2.2、检查需要的依赖2.3、安装2.4、配置2.4.1、配置类型和网络2.4.2、配置账户和角色2.4.3、配置Windows服务2.4.4、让配置生效 2.5、验证是否安装成功 三、卸载3.1、运行MySQL安装工具3.2、卸载及清理3.3、卸载之后的检查工作…...

银行的压力测试如何进行?

为什么要进行压力风险测试&#xff1f; 压力风险测试的最终目的是测试银行在极度恶劣的市场环境中是否有足够的资本维持运转。 题主链接中的一级资本充足率(Tier 1 capital ratio) 亦即衡量标准&#xff0c;这个数字越大&#xff0c;表明银行资本约充裕&#xff0c;可以在停止…...

7、Linux C 进程通信

一、无名管道&#xff08;pipe&#xff09; 1. 函数介绍 #include <unistd.h> ​ int pipe(int pfd[2]); 参数&#xff1a;pfd是一个包含两个整数的数组&#xff0c;pfd[0]为读描述符&#xff0c;pfd[1]为写描述符。 返回值&#xff1a;成功时返回0&#xff0c;失败时…...

Android Framework 层 Hook 技术详解

目录 Hook 技术概述 什么是 Hook 技术? Hook 技术的核心原理 Hook 技术的进化与创新 Hook 技术的魅力与局限 Android Framework 层结构 Framework 层在 Android 中的位置 Framework 层的核心组件 为什么 Framework 层适合 Hook? 常用 Hook 方法 方法替换:换个 “芯…...

java接口中 使用@RequestParam和@RequestPart区别

1. 介绍 这两个注解都是spring注解。 RequestParam通常用于获取请求参数&#xff0c;这些参数可以是URL中的查询参数&#xff0c;也可以是表单数据中的字段。而RequestPart则是用于处理多部分&#xff08;multipart&#xff09;请求中的部分&#xff0c;特别是当上传文件或处理…...

CentOS-7.0系统基础操作

配置ip地址 编辑网卡文件&#xff1a; vi etc/sysconfig/network-scripts/ifcfg-ens33 在网卡文件里参照如下设置&#xff1a; BOOTPROTO"static" IPADDR192.168.61.233 GATEWAY192.168.61.2 NETMASK255.255.255.0 ONBOOT"yes" 防火墙管理 开启防火墙&am…...

全星研发管理APQP软件系统:驱动汽车产品研发全周期,打造高效合规的质量管理引擎

全星研发管理APQP软件系统&#xff1a;驱动汽车产品研发全周期&#xff0c;打造高效合规的质量管理引擎 在汽车、电子、医疗器械等高度依赖质量管理的行业中&#xff0c;APQP&#xff08;先期产品质量策划&#xff09;作为国际通用的产品开发管理框架&#xff0c;是确保产品从…...

Maven 的下载与安装

背景 为什么要建立本地Maven &#xff0c;idea 默认的maven 仓库是放在系统盘的&#xff0c;依赖每次都存在系统盘用就了C盘就爆炸了&#xff0c;所有我们可以在本地其他盘安装maven 建立仓库。 idea 默认的依赖拉取地址是maven 官网&#xff0c;我们建立本地仓库&#xff0c…...

26考研——排序_插入排序(8)

408答疑 文章目录 二、插入排序基本概念插入排序方法直接插入排序算法描述示例性能分析 折半插入排序改进点算法步骤性能分析 希尔排序相关概念示例分析希尔排序的效率效率分析空间复杂度时间复杂度 九、参考资料鲍鱼科技课件26王道考研书 二、插入排序 基本概念 定义&#x…...

Mem0 Prompt优化

在使用mem0的时候&#xff0c;系统中自带的提取事件的Prompt&#xff0c; 效果很差&#xff0c;我们可以按照我们的需求修改 from datetime import datetime, timedeltacustom_fact_extraction_prompt f"""你是一位个人信息整理专家&#xff0c;专注于准确存…...

C++ STL常用算法之常用算术生成算法

常用算术生成算法 学习目标: 掌握常用的算术生成算法 注意: 算术生成算法属于小型算法&#xff0c;使用时包含的头文件为 #include <numeric> 算法简介: accumulate // 计算容器元素累计总和 fill // 向容器中添加元素 accumulate 功能描述: 计算区间内容器元素…...

Kubernetes Webhook必要知识点:原理、配置与实践

#作者&#xff1a;邓伟 文章目录 1. 什么是 Kubernetes Webhook&#xff1f;2. Webhook 的工作原理2.1 准入控制器&#xff08;Admission Controller&#xff09;2.2 Webhook 类型 3. Webhook 的配置3.1 Webhook 配置文件3.2 配置字段说明 4. Webhook 的开发与部署4.1 开发 We…...

IGS 转 STL 全攻略:迪威模型在线转码助力 3D 建模

在 3D 建模与制造业领域&#xff0c;不同文件格式之间的转换是经常面临的重要任务。IGS 和 STL 作为其中两种常用格式&#xff0c;前者凭借出色的曲面表达能力&#xff0c;在 CAD 领域广泛应用&#xff1b;后者凭借简单的三角网格结构&#xff0c;成为 3D 打印、快速成型的行业…...

【Bug】记录2025年遇到的Bug以及修复方案

--------------------------------------------------------分割线 2025.3.25-------------------------------------------------------windows环境下通过命令行终端&#xff08;必须是命令行下&#xff0c;直接赋值传递&#xff0c;代码正常&#xff09;的形式传递字符串时&a…...