JVM——引入
什么是JVM?它与JDK、JRE的关系?
JVM、JRE 和 JDK 是 Java 平台的三个核心组件,各自承担着不同的职责,它们之间的关系密不可分。理解它们的区别和联系有助于更好地开发、部署和运行 Java 应用程序。对于 Java 开发者来说,熟悉这三者的关系和功能是掌握 Java 技术体系的基础。
JVM(Java Virtual Machine)
JVM 是一个抽象的计算机,它是一个规范,定义了一种运行时环境,可以执行 Java 字节码。JVM 的主要功能是将 Java 字节码转换为机器码,以便在特定的计算机上运行。JVM 是 Java 平台的核心组件,它提供了内存管理、线程管理、安全管理和垃圾回收等功能。
JVM 的设计目标是实现 Java 的跨平台特性,使得 Java 程序可以在不同的操作系统和硬件平台上运行,而无需重新编译。JVM 通过抽象底层硬件和操作系统的差异,为 Java 程序提供了一个统一的运行环境。
JRE(Java Runtime Environment)
JRE 是 Java 运行时环境,它包含了 JVM 和 Java 基础类库(Java API)。JRE 是运行 Java 程序所必需的最小环境。它提供了 Java 程序运行所需的核心组件,包括 JVM、Java 标准类库和其他资源。
JRE 的主要作用是为 Java 应用程序提供一个运行环境。用户通常只需要安装 JRE 就可以运行 Java 应用程序。对于大多数终端用户来说,JRE 是他们与 Java 交互的主要部分。
JDK(Java Development Kit)
JDK 是 Java 开发工具包,它包含了 JRE 和一系列用于开发 Java 应用程序的工具。这些工具包括 Java 编译器(javac)、Java 解释器(java)、Java 文档生成工具(javadoc)、Java 打包工具(jar)等。JDK 是开发 Java 应用程序所必需的,它为开发者提供了编写、编译、调试和运行 Java 程序所需的全部工具。
简而言之:
JVM 是 Java 虚拟机,负责执行 Java 字节码。
JRE 是 Java 运行时环境,包含了 JVM 和 Java 基础类库。
JDK 是 Java 开发工具包,包含了 JRE 和开发工具。
三者之间的关系可以形象地比喻为:
JVM 是发动机,提供程序运行的核心动力。
JRE 是整车,包含了发动机和基础配件。
JDK 是整个生产线,提供了制造和维护整车的所有工具。
图示关系
JDK(Java Development Kit) │ ├── JRE(Java Runtime Environment) │ │ │ └── JVM(Java Virtual Machine) │ └── 开发工具(如 javac、javadoc 等)
为什么我们要学习 Java 虚拟机?
在编程世界里,不同语言的开发者们常常陷入一场没有硝烟的战争。系统语言开发者嫌弃托管语言的执行效率低,托管语言开发者又嘲笑系统语言需要手动管理内存;动态语言开发者看不起静态语言冗长的类型系统,而静态语言开发者则对动态语言中频繁出现的运行时错误嗤之以鼻。在这场混乱的争论中,Java 作为全球应用最为广泛的语言之一,自然成为了众人攻击的焦点。如果你是 Java 程序员,或许曾在这些争论中感到尴尬,因为缺乏足够的知识来捍卫自己的选择;或许你渴望深入了解 Java,却不知道从何入手;又或许你在实际开发中遭遇了 Java 启动性能差、内存占用过高的问题,从而对 Java 本身产生了怀疑与困惑。别担心,学习 Java 虚拟机(JVM)能够为你解决这些疑虑。理解 JVM 的本质,意味着你可以深入了解 Java 程序是如何被执行和优化的。这不仅能让你从内部优化代码,实现高效编程,还能为学习更深层次的 Java 技术奠定坚实基础。
许多程序员可能觉得 JVM 是透明的,他们认为只需要掌握 Java 核心类库和第三方库的 API,就可以专注于业务实现,依靠 JVM 自动执行和优化程序。然而,这种观点忽略了一个关键事实:深入了解 JVM 是非常必要的。把核心类库的 API 比作数学公式,那么 JVM 的知识就像是公式的推导过程。虽然掌握公式足以应对考试,但了解其背后的推导过程更有助于记忆、理解和应用。尤其在面对无法直接套用公式的情况时,这种深入的理解能为你指明解决方向。
学习JVM的主要目的?
面试中的 JVM
在技术面试中,JVM 是一个高频考点。无论是初级还是高级 Java 开发岗位,对 JVM 的了解程度都是评估候选人技术深度的重要标准。深入理解 JVM 的内存模型、垃圾回收机制、类加载机制等,能让你在面试中脱颖而出。例如,当被问及如何优化 Java 应用性能时,你可以从 JVM 的内存分配、垃圾回收算法选择等多个角度给出专业回答,展现出你的技术实力和问题解决能力。
生产环境中的 JVM 调优
在实际的生产环境中,Java 应用的性能和稳定性至关重要。JVM 提供了丰富的配置参数,用于满足不同应用场景下的性能需求。掌握这些参数,能够帮助你针对具体应用优化运行参数。例如,通过调整堆内存大小、设置合适的垃圾回收器等手段,可以有效提升应用的响应速度和吞吐量,降低延迟,提高用户体验。在面对生产环境中的性能瓶颈时,能够迅速定位问题并进行调优,是每个 Java 开发者必备的技能。
打牢基础,深入理解 Java 生态
学习 JVM 能帮助我们更深入地理解 Java 语言本身。JVM 是 Java 语言的运行时环境,它负责执行 Java 字节码,并提供了一系列核心功能,如内存管理、线程调度、安全机制等。深入了解 JVM 的工作原理,可以让我们更清楚地知道 Java 程序是如何在底层运行的,从而更好地理解 Java 语言的特性和限制。例如,理解 JVM 的内存模型有助于我们编写出更高效、更安全的并发代码;了解类加载机制可以帮助我们更好地管理类的加载和卸载,避免类加载相关的问题。
提升对 Java 知识点的理解
JVM 的知识体系涵盖了多个重要领域,如内存管理、性能优化、并发编程等。学习 JVM 能够让我们从更底层的角度去理解这些知识点,从而提升我们对 Java 整体知识体系的把握。例如,在学习垃圾回收机制时,我们不仅能了解到不同回收算法的特点和适用场景,还能深入理解对象的生命周期、内存分配策略等,这些知识对于编写高效、稳定的 Java 应用程序至关重要。
探索 JVM 的前沿技术
现代的 JVM 已经超越了 Java 语言本身,形成了一个独立的高性能执行环境。除了 Java,Scala、Clojure、Groovy 和 Kotlin 等语言都能在 JVM 上运行。学习 JVM 能让你了解这些语言的共性,甚至促进它们之间的生态系统共享。例如,GraalVM 作为甲骨文实验室的前沿研究成果,允许在 JVM 上高效运行多种语言,并支持混合使用这些语言(Polyglot),还能将它们提前编译成机器指令,实现在数据库中的嵌入式运行。掌握这些前沿技术,能够让你在未来的开发工作中更具竞争力,能够更轻松地应对多样化的技术挑战。
如何系统地学习 JVM?
基本原理
深入剖析 JVM 的运行机制,逐一了解其设计决策和工程实现。从 JVM 的内存管理机制(如堆内存、栈内存、方法区等)到垃圾回收算法(如标记-清除、复制、整理等),再到类加载机制和执行引擎的工作原理,这些都是学习 JVM 的基础内容。理解这些原理,可以让你从底层把握 Java 应用的运行过程,为后续的优化和问题解决打下坚实基础。
高效实现
探索 Java 编译器和内嵌于 JVM 中的即时编译器(JIT)。了解 Java 代码是如何被编译成字节码,以及字节码又是如何被 JIT 编译成机器码执行的。通过学习编译器优化技术,如方法内联、循环展开等,你可以更好地理解 Java 语言特性,从而编写出更加简洁高效的代码。
代码优化
掌握如何利用工具(如 VisualVM、JConsole、JProfiler 等)定位并解决代码中的性能问题。学习如何通过分析堆转储(Heap Dump)来发现内存泄漏,如何通过线程转储(Thread Dump)来排查线程死锁等问题。在现有工具无法满足需求的情况下,能够凭借对 JVM 的深入理解,开发出定制化的解决方案。
虚拟机黑科技
关注甲骨文实验室等研究机构的前沿工作,例如 GraalVM。了解如何在 JVM 上高效运行其他语言,如何实现多语言混合编程(Polyglot Programming),以及如何通过提前编译(Ahead-Of-Time, AOT)技术将代码编译成机器指令,以实现更高效的执行。这些前沿技术不仅拓展了 JVM 的应用场景,也为未来的软件开发带来了更多的可能性。
总结
学习 JVM 是每个 Java 开发者提升技术水平、应对技术挑战的必经之路。它不仅能帮助我们在面试中脱颖而出,解决生产环境中的性能问题,还能让我们更深入地理解 Java 语言及其运行环境,为掌握更广泛的编程知识和技术打下坚实基础。通过系统地学习 JVM 的基本原理、高效实现、代码优化技巧以及前沿技术,我们可以在激烈的编程语言竞争中站稳脚跟,并不断提升自己的技术实力和创新能力。
相关文章:
JVM——引入
什么是JVM?它与JDK、JRE的关系? JVM、JRE 和 JDK 是 Java 平台的三个核心组件,各自承担着不同的职责,它们之间的关系密不可分。理解它们的区别和联系有助于更好地开发、部署和运行 Java 应用程序。对于 Java 开发者来说ÿ…...
Golang|工厂模式
工厂模式是一种创建型设计模式,它的核心思想是:把对象的创建过程封装起来,不直接在代码中 new 一个对象,而是通过一个“工厂”来生成对象。这样做的好处是: 降低了代码之间的耦合(依赖具体类减少࿰…...
Transformer数学推导——Q29 推导语音识别中流式注意力(Streaming Attention)的延迟约束优化
该问题归类到Transformer架构问题集——注意力机制——跨模态与多模态。请参考LLM数学推导——Transformer架构问题集。 在语音识别任务中,实时性是核心需求 —— 想象你使用语音助手时,每说完一个词就希望即时看到文字反馈,而不是等整句话说…...
dx11 龙书学习 第四章 dx11 准备工作
4.1 准备工作 Direct3D的初始化过程要求我们熟悉一些基本的Direct3D类型和基本绘图概念;本章第一节会向读者介绍些必要的基础知识。然后我们会详细讲解Direct3D初始化过程中的每一个必要步骤,并顺便介绍一下实时绘图应用程序必须使用的精确计时和时间测…...
运维打铁:域名详解及常见问题解决
文章目录 前言一、域名基础概念1. 什么是域名2. 域名结构3. 域名解析 二、域名工作原理1. DNS 服务器层次结构2. 域名解析过程 三、常见域名问题及解决办法1. 域名无法解析2. 域名解析延迟3. 域名解析结果不一致 四、总结 前言 在当今数字化的时代,互联网已经成为我…...
【大模型ChatGPT+R-Meta】AI赋能R-Meta分析核心技术:从热点挖掘到高级模型、助力高效科研与论文发表“
Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,现已广泛应用于农林生态,资源环境等方面,成为Science、Nature论文的…...
ElasticSearch深入解析(五):如何将一台电脑上的Elasticsearch服务迁移到另一台电脑上
文章目录 0.安装数据迁移工具1.导出数据2.导出mapping3.导出查询模板4.拷贝插件5.拷贝配置6.导入到目标电脑上 0.安装数据迁移工具 Elasticsearch dump是一个用于将Elasticsearch索引数据导出为JSON格式的工具。你可以使用Elasticsearch dump通过命令行或编程接口来导出数据。…...
QT中的多线程
Qt中的多线程和Linux中的线程本质是相同的,Qt中针对系统提供的线程API进行了重新封装 QThread类 Qt中的多线程一般通过QThread类实现,要想创建线程就要创建这个类的实例 QThread代表一个在应用程序中可以独立控制的线程,也可以和进程中的其…...
Win11安装Ubuntu20.04简记
写在前面 之前装的22.04,不稳定,把22.04卸载了,重新安装20.04系统。这里主要把卸载和安装的过程中参考到的博客在这记录一下。 卸载ubuntu系统参考的博文 卸载参考博文1 卸载参考博文2 Ubuntu20.04安装参考博文 安装参考博文1 安装参考博…...
电子电器架构 ---电气/电子架构将在塑造未来出行方面发挥啥作用?
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
pdf.js移动端预览PDF文件时,支持双指缩放
在viewer.html中添加手势缩放代码 <script>// alert("Hello World");let agent navigator.userAgent.toLowerCase();// if (!agent.includes("iphone")) {let pinchZoomEnabled false;function enablePinchZoom(pdfViewer) {let startX 0, start…...
机器人--激光雷达
教程 教程 激光雷达 激光 激光(Laser),是一种人造的、高度纯净的单色光。 雷达 激光器旋转机构雷达。 雷达根据激光探头发出激光束的数量,一般可以分为单线激光雷达(2D激光雷达)和多线激光雷(3D激光雷达)。 作用 测距原理 激…...
最新ios开发证书/发布证书/免费证书/企业证书制作教程
本文介绍了如何制作或者苹果开发证书p12文件,含开发证书,推送证书,发布证书,企业证书,免费证书,您在iphone和ipad开发构建 IOS App 应用和苹果ios app签名需要用到。如果嫌麻烦,可以使用懒人工具…...
【Keil5-开发指南】
Keil5-编程指南 ■ Keil5 介绍■ J-Flash 使用■ Keil5-Debug调试工具 Jlink---STLink---DAP仿真器■ Keil5 使用 AStyle插件格式化代码■ Keil5-编译4个阶段■ Keil5-Boot和APP配置■ Keil5-报错■ 芯片手册区别 ■ Keil5 介绍 Keil5 介绍 ■ J-Flash 使用 J-Flash 使用 ■…...
蓝桥杯 18. 机器人繁殖
机器人繁殖 原题目链接 题目描述 X 星系的机器人可以自动复制自己。它们用 1 年的时间可以复制出 2 个自己,然后就失去复制能力。 每年 X 星系都会选出 1 个新出生的机器人发往太空。也就是说,如果 X 星系原有机器人 5 个,1 年后总数是&a…...
从微服务到AI服务:Nacos 3.0如何重构下一代动态治理体系?
在现代微服务架构的浪潮中,Nacos早已成为开发者手中的“瑞士军刀”。作为阿里巴巴开源的核心中间件,它通过动态服务发现、统一配置管理和服务治理能力,为云原生应用提供了坚实的基石。从初创公司到全球500强企业,Nacos凭借其开箱即…...
60、微服务保姆教程(三)Sentinel---高可用流量管理框架/服务容错组件
Sentinel—高可用流量管理框架/服务容错组件 一.为什么要用Sentinel? 1.微服务架构中当某服务挂掉的时候常见的原因有哪些? 1.异常没处理 比如DB连接失败,文件读取失败等 2.突然的流量激增 比如:用户经常会在京东、淘宝、天猫、拼多多等平台上参与商品的秒杀、限时抢…...
[特殊字符] 基于Docker部署Nacos注册中心及微服务注册发现详解(含MySQL持久化配置)
📚 目录 项目背景与准备 Docker部署Nacos并配置MySQL持久化 微服务注册到Nacos(item-service示例) 微服务服务发现与调用(cart-service示例) 小结 1. 项目背景与准备 在微服务架构中,服务注册与发现是…...
CentOS 7环境配置DHCP服务器
主播多次测试,没有什么问题。如果有问题可以私信主播,主播不定时查看 目录 1. 初始配置 1.1 配置VMware workstation配置 1.2 设置虚拟机网路适配器为NAT模式 2. 环境搭建 2.1下载相应的软件包 2.2 查找下载的软件包中给出的示例代码所在目录 2.2 …...
基于常微分方程的神经网络(Neural ODE)
参考资料:B站的视频解析 知乎神经常微分方程总结 论文链接:论文 什么是常微分方程? 微分方程式包含未知函数及其导数的方程,未知函数导数的最高阶数称为给i微分方程的阶。 常微分方程(ordinary differential equation࿰…...
对VTK中的Volume Data体数据进行二维图像处理
文章目录 概要Cpp代码处理前效果处理后效果 概要 在 VTK 中对体数据进行二维图像处理的过程通常涉及从三维体数据中提取二维切片,并对这些切片进行处理。然后,可以选择性地将处理后的切片数据重新合并成新的体数据。 以下是对 VTK 中的体数据进行二维图…...
阿里云ftp服务器登录要怎么做?如何访问ftp服务器?
阿里云ftp服务器登录要怎么做?如何访问ftp服务器? 访问FTP服务器通常需要以下步骤,具体方法取决于您使用的工具和操作系统: 一、FTP服务器登录所需信息 服务器地址:通常是IP地址(如 ftp.example.com 或 192…...
中国的国产化进程
中国的国产化进程是一个涉及国家安全、经济发展和技术自主的长期战略,其历史进程和动因可以从以下几个关键阶段和核心原因来理解: 一、国产化的历史进程 1. 建国初期(1949–1978):自力更生与基础工业建设 背景:新中国成立后,面临西方国家的技术…...
突破语言藩篱:从Seq2Seq到智能翻译的范式革命
## 一、语言之桥的智能进化:超越字面转换的深层理解 在慕尼黑工业大学实验室的深夜,一个搭载最新神经网络的翻译系统正逐字解析着歌德诗句的韵律。这并非简单的词语替换,而是一场跨越时空的文化解码——机器首次在《浮士德》的英译本中保留了德文诗歌特有的头韵结构。这个突…...
Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)
前言 📝 在开始编写一个 Java 项目之前,做好充分的准备工作是至关重要的。很多初学者可能在没有清晰规划的情况下就开始编写代码,导致项目开发进度缓慢、结构混乱,甚至最终无法按预期完成。而事实上,项目的成功不仅仅…...
如何使用 Redis 缓存验证码
目录 🧠 Redis 缓存验证码的工作原理 🧰 实现流程 1. 安装 Redis 和 Python 客户端 2. 生成并缓存验证码 示例代码:生成并存储验证码 3. 发送验证码(以短信为例) 4. 校验验证码 示例代码:校验验证码…...
(八)RestAPI 毛子(Unit Testing)
文章目录 项目地址一、Unit Testing1.1 创建X unit 测试项目1. 创建项目目录2. 管理包 1.2 创建CreateEntryDtoValidator测试1.3 创建CreateEntryDtoValidator测试 二、Integration test2.1 创建Integration test环境1. 安装所需要的包 2.2 配置基础设置1. 数据库链接DevHabitW…...
德州仪器(TI)—TDA4VM芯片详解(2)—产品应用和介绍
写在前面 本系列文章主要讲解德州仪器(TI)TDA4VM芯片的相关知识,希望能帮助更多的同学认识和了解德州仪器(TI)TDA4VM芯片。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 错过其他章节的同学…...
vue2,3:v-model的语法糖
Vue2的v-model 语法糖 **1. **v-model 的作用 v-model 是 Vue 中用于实现双向数据绑定的指令,主要用于表单元素(如 、、)和自定义组件。它简化了数据与视图之间的同步,使得开发者可以方便地处理用户输入。 **2. **v-model 的语…...
【深度学习】#10 注意力机制
主要参考学习资料: 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 目录 注意力提示生物学中的注意力提示查询、键和值 注意力汇聚注意力评分函数掩蔽softmax操作加性注意力缩放点积注意力 Bahdanau注意力多头注意力自注意力和位…...
Modbus总线协议智能网关协议转换案例解析:提升系统兼容性
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气,Schneider Electic)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(Defacto),并日现在是工业电子设备之间常用的连接方式 Modbus是一种串行通信协…...
echarts自定义图表--仪表盘
基于仪表盘类型的自定义表盘 上图为3层结构组成 正常一个仪表盘配置要在外圈和内圈之间制造一条缝隙间隔 再创建一个仪表盘配置 背景透明 进度条拉满 进度条颜色和数据的背景相同开始处的线 又一个仪表盘配置 数值固定一个比较小的值 <!DOCTYPE html> <html><h…...
第五章:Execution Flow Framework
Chapter 5: Execution Flow Framework 从消息记忆到执行流程:如何让多个AI“同事”协同完成复杂任务? 在上一章的消息与记忆系统中,我们已经能让AI记住之前的对话内容。但你是否想过:如果用户要求“预订从北京到上海的高铁&#…...
01 C++概述
一、C语言发展史 起源与演进 • 1960s:剑桥大学Martin Richards开发BCPL语言,用于系统软件开发。 • 1970年:贝尔实验室Ken Thompson在BCPL基础上发明B语言。 • 1972年:Dennis Ritchie和Brian Kernighan设计出C语言,兼…...
Kotlin DSL 深度解析:从 Groovy 迁移的困惑与突破
引言 Gradle 作为现代构建工具,支持 Groovy 和 Kotlin 两种 DSL(领域特定语言)。Kotlin DSL 因其类型安全和更好的 IDE 支持逐渐流行,但它的语法设计却让许多开发者感到困惑,尤其是从 Groovy 迁移时。 本文将从 Kotl…...
2025年二级造价师考点总结
二级造价师考点总结 一、建设工程造价管理 工程造价构成:重点掌握建筑安装工程费(人工费、材料费、机械费、企业管理费、利润、规费、税金)的组成及计算。 计价依据:熟悉工程量清单计价规范,掌握定额计价与清单计价的…...
Typecho博客使用阿里云cdn和oss:handsome主题进阶版
Typecho使用阿里云cdn和oss 设置前需要保证阿里云cdn和oss已配置好且可以正常使用一、准备工作二、修改 Handsome 主题的静态资源链接方法 1:直接修改主题文件(推荐)方法 2:通过主题设置自定义(方便) 三、处…...
知识体系_用户研究_用户体验度量模型
1 用户体验度量常见模型 1.1 满意度(CSAT/PSAT) CSAT(Customer Satisfaction)指客户满意度,PAST(Product Satisfaction)指产品满意度。顾名思义,其用于衡量客户对产品或服务的体验度量指标。在用户完成某个产品或某项服务的体验后,对其进行…...
邮件分类特征维度实验分析
活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!…...
Linux服务之Nginx服务部署及基础配置
目录 一.Nginx介绍 1.Nginx功能介绍 2.基础特性 3.Web服务相关的功能 4.I/O模型相关概念 5.nginx模块 6.Nginx文件存放位置 7.Nginx事件驱动模型 二.平滑升级及信号使用 1.Nginx 程序当作命令使用 2.信号类型 3.平滑升级nginx 4.回滚 三.Nginx调优 1.隐藏版本号或…...
Centos小白之在CentOS8.5中安装Rabbitmq 3.10.8
注意事项 安装以及运行等其他操作,要使用root账号进行,否则会遇到很多麻烦的事情。 使用命令行进行远程登录 ssh root192.168.0.167 安装make 执行安装命令 yum -y install make gcc gcc-c kernel-devel m4 ncurses-devel openssl-devel这里有可能会…...
基于单片机的游泳馆智能管理系统设计与实现
标题:基于单片机的游泳馆智能管理系统设计与实现 内容:1.摘要 随着游泳馆规模的不断扩大和管理需求的日益提高,传统的管理方式已难以满足高效、精准的管理要求。本文旨在设计并实现一种基于单片机的游泳馆智能管理系统。采用单片机作为核心控制单元,结合…...
深度相机(一)——深度相机模型及用途介绍
一、深度相机概述 深度相机,又称 3D 相机,是一种能够获取场景中物体深度信息(即物体到相机的距离)的设备。与传统相机只能拍摄二维平面图像不同,深度相机不仅能记录物体的颜色和纹理,还能通过特定技术手段测…...
【Torch】nn.Conv1d、nn.Conv2d、nn.Conv3d算法详解
1. nn.Conv1d 1.1 输入(Input)和输出(Output) 输入张量 形状:(batch_size, in_channels, length) batch_size:一次过网络的样本数in_channels:每个样本的通道数(特征维度࿰…...
Android WebRTC回声消除
文章目录 安卓可用的回声消除手段各种回声消除技术优缺点WebRTC回声消除WebRTC回声消除回声消除处理流程WebRTC AECM APP 安卓可用的回声消除手段 硬件回声消除 使用 AudioRecord 的 VOICE_COMMUNICATION 模式:通过 AudioRecord 的 VOICE_COMMUNICATION 音频源可以…...
[Linux运维] [Ubuntu/Debian]在Lightsail Ubuntu服务器上安装Python环境的完整指南
在之前的教程中,我们已经讲过如何开通亚马逊Lightsail服务器并安装宝塔面板。今天,我们来进一步补充:如何在Lightsail上的Ubuntu/Debian系统中安装和配置Python开发环境。 本教程不仅适用于Lightsail服务器,也适用于所有使用Ubunt…...
2025医疗领域AI发展五大核心趋势与路线研究
引言 人工智能技术正在全球范围内深刻改变医疗服务的提供方式,推动全球医疗的普惠化、技术合作、产业升级以及公共卫生防控发生巨变[0]。医疗AI的浪潮奔涌向前,从2024年开始,生成式AI的爆发式发展更是将医疗AI推到了新的十字路口[1]。在这一背景下,本报告将深入探讨医疗领…...
【学习笔记】机器学习(Machine Learning) | 第六周|过拟合问题
机器学习(Machine Learning) 简要声明 基于吴恩达教授(Andrew Ng)课程视频 BiliBili课程资源 文章目录 机器学习(Machine Learning)简要声明 摘要过拟合与欠拟合问题一、回归问题中的过拟合1. 欠拟合(Underfit&#x…...
【MQ篇】RabbitMQ之惰性队列!
目录 引言:当“生产”大于“消费”,队列就“胖”了!肥宅快乐队列?🤔队列界的“躺平”大师:惰性队列(Lazy Queues)驾到!😴如何“激活”你的队列的“惰性”属性…...
计算机视觉——通过 OWL-ViT 实现开放词汇对象检测
介绍 传统的对象检测模型大多是封闭词汇类型,只能识别有限的固定类别。增加新的类别需要大量的注释数据。然而,现实世界中的物体类别几乎无穷无尽,这就需要能够检测未知类别的开放式词汇类型。对比学习(Contrastive Learning&…...