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

JVM规范之运行时数据区域

JVM运行时数据区

  • 前言
    • 为什么要阅读jvm规范?
    • 阅读本篇文章可以学习到啥?
  • 正文
    • 概述
    • JVM线程私有的运行时数据区
      • pc(program counter) Register
      • JVM Stack
      • Native Method Stack
    • JVM线程共享的运行时数据区
      • Heap
      • Method Area
      • Run-time constant pool
  • 总结
  • 参考链接

前言

为什么要阅读jvm规范?

  1. 建立对JVM的基础认知,JVM 规范是对 Java 虚拟机的抽象描述,定义了 Java 虚拟机的架构、功能和行为。它提供了一个统一的标准,让初学者能够从整体上理解 Java 程序在虚拟机中的运行原理,包括类加载、内存管理、字节码执行等核心概念。
  2. 避免实现细节干扰,不同的 JVM 实现(如 HotSpot、OpenJ9 等)在具体的实现方式上可能存在差异,包括优化策略、内存布局、垃圾回收算法等。对于初学者来说,直接陷入这些实现细节中,容易造成混淆,增加学习的难度。先学习 JVM 规范,可以让初学者在理解了基本原理的基础上,再去学习具体实现时,更容易理解这些实现的特点和差异,而不是一开始就被复杂的实现细节所困扰。
  3. 理解JVM的跨平台设计,Java 语言的一个重要特性是 “一次编写,到处运行”,这依赖于不同平台上符合 JVM 规范的虚拟机实现。学习 JVM 规范能让初学者明白,只要遵循规范,Java 程序就能在各种不同的操作系统和硬件平台上运行。这种跨平台的思维方式是 Java 编程的重要理念,有助于初学者更好地理解 Java 的优势和应用场景,而不仅仅局限于某一种具体的 JVM 实现。
  4. 快速学习新技术,JVM 技术在不断发展,新的特性和优化不断被引入。阅读 JVM 规范能让初学者跟上技术发展的步伐,理解新特性的设计目的和原理。当新的 JVM 实现版本发布或出现新的 JVM 相关技术时,基于对规范的理解,初学者能够更容易地学习和掌握这些新知识,而不是依赖于特定实现的经验,因为特定实现可能会随着时间的推移而发生较大变化,而规范相对稳定且具有前瞻性。

阅读本篇文章可以学习到啥?

本篇文章根据jvm8规范的 §2.5编写,阅读本篇文章可以简单了解JVM的运行时数据区包含哪些部分,了解各个部分的角色和功能,方便后续更加深入地学习JVM关于运行时数据区的细节。

正文

概述

JVM中定义了多种运行时数据区域,但是按照生命周期可以分为两种,一种是跟随JVM启动创建和销毁的,另一种则是跟随线程创建和销毁的,每个内存区域都有自己的职责,相互之间也并不是完全的隔离的状态,存在包含关系,jvm对于内存的管理的实现并没有做严格的限制,这也为JVM的实现提供足够的灵活性和扩展性。

JVM线程私有的运行时数据区

pc(program counter) Register

JVM支持多线程同时运行,每个JVM线程都有自己的pc Register,用于记录当前正在执行的字节码指令地址,在任意时刻,一个JVM线程都正在运行一个方法中的字节码指令,对于pc寄存器中存储的内容,包含两种情况:

  • 线程正在执行的方法是一个native method,则PC中的值是 undefined;
  • 线程正在执行的方法是一个非native method,则PC寄存器中存储的是将要执行的字节码指令地址;

因此,JVM要求pc Register的宽度必须在特定的平台上足够容纳returnAddress和本地指针宽度

补充

  • native method是JVM为了实现与其它编程语言进行交互而设计的,指使用非Java语言实现的方法,程序员或者用户能够在java程序中调用这些方法,实现和非Java程序进行交互;
  • returnAddress是JVM中的一种数据类型,存储的是某个字节码指令的地址,是jsr, ret, jsr_w指令使用的数据类型,可以用于实现程序逻辑跳转;

JVM Stack

JVM Stack,即Java虚拟机栈,每个JVM线程都独立拥有JVM Stack,它随JVM线程创建而创建,随线程销毁而销毁,栈中存储的是帧,和传统编程语言C很类似,栈用来保存局部变量、中间结果,也用于保存方法调用和返回的上下文信息

JVM并不会直接操作栈,只能通过方法的调用和返回间接进行压栈和出栈的操作;有一点区别是,传统语言中栈通常是一段连续的内存空间,但是JVM并没有同样的要求,栈帧也可以在堆上进行分配,因此,可以更加充分的利用碎片化的内存空间;

JVM Stack的空间大小有两种设计:

  • 如果采用固定大小的设计,则每个JVM线程被创建时,栈在初始化时也可以是独立配置的,JVM实现时可以提供给程序员配置栈大小的方法;
  • 栈也可以根据实际的计算需求进行动态扩缩容,如果采用这种动态空间的设计,则JVM实现可以提供给程序员配置动态上下界的方法;(比如HotSpot JVM程序,可以在Java程序启动参数上找到蛛丝马迹)

关于Java虚拟机栈的两种异常情况:

  • 如果一个JVM线程在计算时需要更大的栈中间(所需的空间超出了被允许的大小),则JVM会抛出StackOverflowError
  • 如果没有额外的空间来满足栈动态扩展或者一个新的JVM线程的创建和初始化,则JVM会抛出OutOfMemoryError

Native Method Stack

本地方法栈,本地方法是使用非Java语言编写的,用于实现Java和其他编程语言进行交互,但这并不是一个必须的模块,根据用户的实际情况而定;

  • 如果JVM在实现时提供了本地方法栈,则本地方法栈随着线程的创建而创建;
  • 如果JVM在实现时不允许加载本地方法,则JVM无需提供本地方法栈的实现;

本地方法栈空间大小的设计:

  • 本地方法栈的大小可以是固定的,也可以是动态扩缩容的,JVM的实现可以提供给用户或者程序员配置本地方法栈大小和上下界的方法;

关于本地方法栈的异常情况:

  • 针对空间固定大小的实现,如果一个线程在运行时需要本地方法栈的大小超出允许的大小,则JVM会抛出StackOverflowError
  • 如果本地方法栈是可以进行动态扩容的,但是所需的额外空间无法满足或者初始化一个本地方法栈时没有足够的空间,则JVM会抛出OutOfMemoryError

JVM线程共享的运行时数据区

Heap

Heap,即堆,是所有JVM线程共享的一块内存空间,当JVM启动时创建,所有的对象实例和数组都会从堆上分配空间,对象占用的内存从来都不会显式地被释放,而是通过自动存储管理系统进行回收,也就是大名鼎鼎的GC(garbage collector);关于自动存储管理系统,JVM并没有假设任何类型的内存管理系统,而是让实现者根据自己的需求选择相应的内存管理技术;

JVM Heap的空间大小有两种设计:

  • 堆内存不一定是连续的;
  • 如果堆的大小是固定的,JVM在实现时可以为程序员或者用户提供配置堆空间大小的方法;
  • 堆的大小可以根据实际情况进行动态扩缩容,JVM在实现时可以为程序员或者用户提供配置堆空间大小上下界的方法;(例如HotSpot JVM,但是一般线上使用时,上下界配置大小是一样的,目的也是避免JVM在运行时频繁的扩缩容带来的性能损耗)

关于堆异常的情况:

  • 如果一次计算需要的内存空间超出自动内存管理系统所能申请的空间大小,则JVM会抛出OutOfMemoryError

Method Area

Method Area,即方法区,所有的JVM线程共享的一块内存区域,方法区的概念和操作系统进程中的代码段(text segment)有些相似,方法区存储了每个类的结构,比如运行时常量池、字段信息等,还有方法和构造器的指令代码;

方法区在JVM启动时创建,从逻辑上讲,方法区是堆的一部分,但是一种简单的实现是既不使用GC进行垃圾回收也不会对它进行压缩,JVM规范并没有指定要求方法区的位置和字节码指令的管理策略;

方法区的内存空间大小设计:

  • 方法区的内存不一定是连续的;
  • 方法区的大小可以是固定的,也可以是动态的扩缩容的,JVM在实现时可以提供程序员和用户配置方法区大小或者上下界的方法;

关于方法区的异常情况:

  • 如果方法区的内存大小不能够满足一次内存分配的申请,则JVM会抛出OutOfMemoryError

Run-time constant pool

运行时常量池,是从方法区分配的一部分内存空间,是每个类或者接口对应的calss文件中的常量池表,常量池中保存了各种常量,包括数值字面量和字段引用,和传统编程语言中的符号表有点类似,
当一个类或者接口被创建时,运行时常量池也会被创建。

运行时常量池异常的情况:

  • 当创建一个类或者一个接口时,如果运行时常量池所需的空间超出方法区可用空间,则JVM会抛出OutOfMemoryError

总结

本篇文章根据JVM8规范,总结了6种JVM运行时数据区,按照线程私有和全局共享,分成两类:
线程私有的运行时数据区:

  • pc Register
  • java虚拟机栈
  • 本地方法栈(如果JVM允许加载本地方法的话)

线程共享的运行时数据区:

  • 方法区
  • 运行时常量池

参考链接

jvm8s

相关文章:

JVM规范之运行时数据区域

JVM运行时数据区 前言为什么要阅读jvm规范?阅读本篇文章可以学习到啥? 正文概述JVM线程私有的运行时数据区pc(program counter) RegisterJVM StackNative Method Stack JVM线程共享的运行时数据区HeapMethod AreaRun-time constant pool 总结参考链接 前…...

LVGL(lv_btnmatrix矩阵按钮)

文章目录 🔧 1. 基本概念📌 lv\_btnmatrix 是什么? 🧱 2. 基本结构和用法✅ 创建按钮矩阵✅ 设置按钮文字 🧰 3. 设置按钮行为🔄 4. 响应按钮点击🎨 5. 自定义样式📌 6. 使用技巧&am…...

AUTOSAR图解==>AUTOSAR_TR_AIDesignPatternsCatalogue

AUTOSAR 人工智能设计模式目录 AUTOSAR传感器执行器与仲裁设计模式的深入解析与图解 目录 简介传感器和执行器模式 架构概述组件结构交互流程应用场景 多请求者或提供者之间的仲裁模式 架构概述组件结构仲裁流程应用场景 总结 1. 简介 AUTOSAR(AUTomotive Open Sy…...

英语时态--中英文对“时间”的不同理解

文章目录 中英文时间上的差异我现在正在休息一般现在时1. 经常发生的动作2. 表客观事实3. 表示现在的状态一般将来时1. will2. be going to含义1:打算在将来某时做某事含义2:某事预计要发生而且不可避免中英文时间上的差异 我现在正在休息 “我现在正在休息。”用英文怎么说…...

Linux基础开发工具一(yum/apt ,vim)

前言 Linux下,如何进行软件安装,查找,卸载 1.源代码安装 2. rpm安装方式,安装包的本质,就是把源代码在Linux下编译好,然后打包(别人把自己编译好的软件打包给你让你去安装) 上面…...

Java 线程池原理

Java 线程池是一种管理和复用线程的机制,其原理如下: 核心概念 线程池的初始化 :在创建线程池时,需要设置一些关键参数,如核心线程数(corePoolSize)、最大线程数(maximumPoolSize&am…...

AJAX 使用 和 HTTP

ajax学习 promise和 awit Node.js 和 webpack 前端工程化 Git工具 AJAX异步的JS和XML: 使用XML对象和服务器通信 在这里插入图片描述 统一资源定位符 URL HTTP 超文本传输协议 域名 资源路径 资源目录和类型 URL 查询参数 使用?表示之后的参数…...

mem0跟Memgraph交互

目录 1. 安装和设置2. 配置连接3. 使用 mem0 进行交互4. 添加和查询数据5. 代码运行结果 1. 安装和设置 首先,确保你已经安装了 Memgraph 和 mem0 库。你可以使用 pip 来安装 mem0: uv pip install "mem0ai[graph]" uv pip install langchai…...

httpclient请求出现403

问题 httpclient请求对方服务器报403,用postman是可以的 解决方案: request.setHeader( “User-Agent” ,“Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0” ); // 设置请求头 原因: 因为没有设置为浏览器形式&#…...

验证码与登录过程逻辑学习总结

目录 前言 一、验证码与登录 二、使用步骤 1.先apipost测试一波 2.先搞验证码 3.跨域问题 4.后端走起 总结 前言 近期要做一个比较完整的demo,需要自己做一个前端登录页面,不过api接口都是现成的,一开始以为过程会很easy,…...

openai接口参数max_tokens改名max-completion-tokens?

文章目录 关于max_tokens参数max_tokens改max-completion-tokens?控制 OpenAI 模型响应的长度 关于max_tokens参数 大模型 API(比如 OpenAI、DeepSeek、Moonshot 等)都是按照“Token 数量”来计费。 控制内容:控制一次请求返回的…...

【办公类-39-07】20250511批量生成通义万相图片(七)彩色背景蝴蝶-筛选无黑无白的图片

制作了教师裁剪的拼图块后,发现如果图案上有黑色,就没法看清出凹凸角,剪起来有误差 所以黑色也要剔除 通义万相下载的彩色蝴蝶有彩色背景的图片,放弃有白色和黑色图案的图片,保留彩色图案的蝴蝶 deepseek、阿夏 20250…...

容器技术 20 年:颠覆、重构与重塑软件世界的力量

目录 容器技术发展史 虚拟化技术向容器技术转变 Docker的横空出世 容器编排技术与Kubernetes 微服务的出现与Istio 工业标准的容器运行时 容器技术与 DevOps 的深度融合​ 无服务架构推波助澜 展望未来发展方向 从 20 世纪硬件虚拟化的笨重,到操作系统虚拟…...

Docker 部署 - Crawl4AI 文档 (v0.5.x)

Docker 部署 - Crawl4AI 文档 (v0.5.x) 快速入门 🚀 拉取并运行基础版本: # 不带安全性的基本运行 docker pull unclecode/crawl4ai:basic docker run -p 11235:11235 unclecode/crawl4ai:basic# 带有 API 安全性启用的运行 docker run -p 11235:1123…...

在C++中,符号位是否参与位运算

在C中,符号位是否参与位运算取决于具体的运算符和数据类型。以下是详细解释: 1. 按位与(&)、按位或(|)、按位异或(^) 规则:这些运算符会处理包括符号位在内的所有二…...

【计算机网络】NAT技术、内网穿透与代理服务器全解析:原理、应用及实践

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:以太网、MAC地址、MTU与ARP协议 下篇文章:五种IO模型与阻…...

redis数据结构-08(SINTER、SUNION、SDIFF、SISMEMBER)

集合运算:SINTER、SUNION、SDIFF、SISMEMBER Redis 集合是一种功能强大的数据结构,可用于存储一组唯一元素。本课基于上一课对 Redis 集合的介绍,深入探讨了使 Redis 集合如此多功能的基本集合操作: SINTER 、 SUNION 、 SDIFF 和…...

大模型都有哪些超参数

大模型的超参数是影响其训练效果、性能和泛化能力的关键设置,可分为以下几大类别并结合实际应用进行详细说明: 一、训练过程相关超参数 学习率(Learning Rate) 作用:控制参数更新的步长,直接影响收敛速度和稳定性。过高会导致震荡或过拟合,过低则收敛缓慢。调整策略:初…...

【更新至2023年】1999-2023年上市公司人工智能词频统计数据(年报词频统计)

【更新至2023年】1999-2023年上市公司人工智能词频统计数据(年报词频统计) 1、时间:1999-2023年 2、来源:上市公司年报 3、指标:股票代码、公司简称、年报标题、年份、行业名称、行业代码、全文-文本总长度、仅中英…...

通过 Azure DevOps 探索 Helm 和 Azure AKS

俗话说:“慷慨之人必昌盛;滋润他人者,必得滋润。” 如果您觉得这篇文章对您有有所帮助,请点赞,关注,转发! 前言 在不断发展的云计算世界中,应用程序的无缝部署和管理至关重要。Azu…...

Go语言标识符

文章目录 标识符的组成规则Go语言关键字预定义标识符标识符命名惯例 特殊标识符标识符访问权限控制 在Go语言中,标识符(Identifier)是用来命名变量、函数、类型、常量等程序实体的名称。 标识符的组成规则 1、必须以字母或下划线(_)开头: 字母包括Unico…...

Spring Cloud : OpenFeign(远程调用)

RestTemplate虽然比直接用HTTPClient简单的多,但是还是存在着许多的问题,比如url拼接麻烦,容易出错,并且可读性很差 public OrderDetail selectOrderById(Integer orderId){OrderDetail orderDetail orderMapper.selectOrderById…...

JVM内存结构有哪些?HashMap和HashTable的区别?

JVM内存结构 JVM内存主要分为以下几个区域: 程序计数器(Program Counter Register) 线程私有,记录当前线程执行的字节码行号指示器 唯一一个不会出现OOM的内存区域 Java虚拟机栈(Java Virtual Machine Stacks) 线程私有,生命周期与线程相…...

三维空间中的组织行为映射:MATLAB 数据插值可视化技术

在组织行为学研究中,如何直观呈现多维变量之间的关系一直是个挑战。今天我们将深入解析一段 MATLAB 代码,看看如何通过数据插值和三维可视化技术,将抽象的组织行为数据转化为直观的三维曲面图,揭示组织自尊 (OBSE)、牺牲性领导 (SSL) 与责任感知 (FO) 之间的复杂关系。 �…...

ImportError: DLL load failed: 找不到指定的程序。

查看其他博客说是缺少libssl-1_1-x64.dll 和 libcrypto-1_1-x64.dll 然后去下载放到博客说的目录下 没有用 解决不了一点 OpenSSL for Windows 64位 完整安装包 在这里 项目地址: https://gitcode.com/open-source-toolkit/eb627 注意事项 此安装包仅适用于64位Windows系…...

计算机的三个根本性基础

1. 计算机是执行输入、运算、输出的机器 从硬件上看,计算机是执行输入、运算、输出的机器,计算机的硬件由大量的IC(Integrated Circuit,集成电路)组成。 IC会在其中内部对外部输入的信息进行运算,并把运算…...

C++ Builder XE 使用DevMode设置打印机的自定义纸张,打印方向

代码功能介绍(以备以后查询):该代码片段展示了如何将TPanel控件的内容作为图像打印出来。首先,代码创建了一个与TPanel大小相同的位图,并通过BitBlt函数将TPanel的内容复制到位图中。接着,代码配置打印机,设…...

QOwnNotes:功能强大的跨平台笔记应用程序

QOwnNotes是一款功能强大的跨平台笔记应用程序,专为追求高效、灵活笔记管理的用户设计。它不仅支持Windows、macOS和Linux等多种操作系统,还提供了丰富的功能,帮助用户轻松管理笔记、任务和清单。无论是日常记录、学习笔记还是工作计划&#…...

深入理解反序列化攻击:原理、示例与利用工具实战

反序列化漏洞是现代 Web 安全中的一个高危攻击类型,常常导致远程代码执行(RCE)、文件读写、身份伪造等严重后果。本文将从基础原理讲起,结合实际代码和工具(PHPGGC、ysoserial)演示反序列化攻击的完整过程。…...

【今日三题】素数回文(模拟) / 活动安排(区间贪心) / 合唱团(动态规划)

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;每日两三题 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 素数回文(模拟)活动安排(区间贪心)合唱团(动态规划) 素数回文(模拟) 素数回文 #include <iostream> #include <st…...

一文了解B+树的删除原理

1. B树的核心特性回顾 B树是一种广泛应用于数据库和文件系统的平衡多路搜索树&#xff0c;其核心特性包括&#xff1a; 阶数&#xff08;m&#xff09;&#xff1a;定义每个节点最多拥有的子节点数&#xff08;或键数&#xff09;节点容量规则&#xff1a; 根节点&#xff1a…...

Spring Boot项目(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot前后端分离)

下载地址&#xff1a; 前端&#xff1a;https://download.csdn.net/download/2401_83418369/90811402 后端&#xff1a;https://download.csdn.net/download/2401_83418369/90811405 一、前端vue部分的搭建 这里直接看另一期刊的搭建Vue前端工程部分 前端vue后端ssm项目_v…...

26考研——中央处理器_指令流水线_指令流水线的基本概念 流水线的基本实现(5)

408答疑 文章目录 六、指令流水线指令流水线的基本概念流水线的基本实现流水线设计的原则流水线的逻辑结构流水线的时空图表示 八、参考资料鲍鱼科技课件26王道考研书 六、指令流水线 前面介绍的指令都是在单周期处理机中采用串行方法执行的&#xff0c;同一时刻 CPU 中只有一…...

DAY 22 复习日kaggle泰坦里克号人员生还预测

复习日 仔细回顾一下之前21天的内容&#xff0c;没跟上进度的同学补一下进度。 作业&#xff1a; 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 kaggle泰坦里克号人员生还预测 输入&#xff1a; import pandas as pd from sklea…...

SpringCloud Gateway知识点整理和全局过滤器实现

predicate(断言)&#xff1a; 判断uri是否符合规则 • 最常用的的就是PathPredicate&#xff0c;以下列子就是只有url中有user前缀的才能被gateway识别&#xff0c;否则它不会进行路由转发 routes:- id: ***# uri: lb://starry-sky-upmsuri: http://localhost:9003/predicate…...

婴幼儿托育实训室师资协同培养模式

随着社会对婴幼儿托育服务需求的日益增长&#xff0c;培养适应市场需求的高素质托育人才成为当务之急。产教融合作为一种有效的人才培养模式&#xff0c;对于婴幼儿托育实训室建设具有重要意义&#xff0c;能够有效整合学校和企业的资源&#xff0c;为婴幼儿托育实训室人才培养…...

Gartner 《2025大数据管理规划指南》学习心得

概要 本研究旨在为数据和分析&#xff08;D&A&#xff09;技术专业人员提供2025年的数据管理规划指导&#xff0c;帮助他们应对最新数据管理趋势&#xff0c;以增强决策制定并实现卓越的业务成果。强调了持续适应数据管理实践的组织将更有能力做好人工智能&#xff08;AI&…...

理解反向Shell:隐藏在合法流量中的威胁

引言 在网络安全领域&#xff0c;​​反向Shell&#xff08;Reverse Shell&#xff09;​​ 是一种隐蔽且危险的攻击技术&#xff0c;常被渗透测试人员和攻击者用于绕过防火墙限制&#xff0c;获取对目标设备的远程控制权限。与传统的“正向Shell”&#xff08;攻击者主动连接…...

《AI大模型应知应会100篇》第55篇:大模型本地开发环境搭建

第55篇&#xff1a;大模型本地开发环境搭建 ——从零开始构建你的AI炼金炉 &#x1f4cc; 摘要 在人工智能尤其是大模型&#xff08;LLM&#xff09;领域&#xff0c;一个高效、稳定、可扩展的本地开发环境是每位开发者的第一块基石。本文将手把手带你完成从硬件选型到软件配…...

AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月11日第74弹

从今天开始&#xff0c;咱们还是暂时基于旧的模型进行预测&#xff0c;好了&#xff0c;废话不多说&#xff0c;按照老办法&#xff0c;重点8-9码定位&#xff0c;配合三胆下1或下2&#xff0c;杀1-2个和尾&#xff0c;再杀6-8个和值&#xff0c;可以做到100-300注左右。 (1)定…...

Docker:安装配置教程(最新版本)

文章目录 一、前言二、具体操作2.1 卸载 Docker (可选)2.2 重新安装&#xff08;使用清华大学镜像&#xff09;2.3 配置轩辕镜像加速2.4 Docker 基本命名2.5 测试是否成功 三、结语 一、前言 Docker 是一种容器化技术&#xff0c;在软件开发和部署中得到广泛的应用&#xff0c…...

数据结构【二叉树的遍历实现】

&#x1f4d8;考研数据结构基础&#xff1a;二叉树的存储、遍历与队列辅助实现详 在数据结构的学习中&#xff0c;二叉树作为一种结构清晰、应用广泛的树形结构&#xff0c;是考研计算机专业课中重点内容之一。本文将以实际代码为基础&#xff0c;介绍二叉树的存储结构、遍历方…...

稳态电路和瞬态电路

一、概述 稳态电路是指电路在长时间运行后达到的一种稳定状态&#xff1b; 瞬态电路是指电路在切换或者初始化节点经历过渡的过程。 在电路分析中&#xff0c;稳态和瞬态是动态电路的两个阶段。在电路中&#xff0c;如果有电感或者电容时&#xff0c; 他们的电压和电流不能瞬间…...

spark运行架构及核心组件介绍

目录 1. Spark 的运行架构1.1 Driver1.2 Executor1.3 Cluster Manager1.4 工作流程 2. Spark 的核心组件2.1 Spark Core2.2 Spark SQL2.3 Spark Streaming2.4 MLlib2.5 GraphX 3. Spark 架构图4. Spark 的优势4.1 高性能4.2 易用性4.3 扩展性4.4 容错性 5. 总结 1. Spark 的运行…...

Linux服务器常用运维工具/命令

常用工具/命令 1、查看内存使用 free -m上述命令用于显示系统中内存的使用情况&#xff0c;并将内存使用量以兆字节&#xff08;MB&#xff09;为单位显示。这个命令在 Linux 和类 Unix 系统上非常常见&#xff0c;是监视系统内存的一个简单而有用的工具。 具体而言&#xf…...

KaiwuDB 2.0:为 AIoT 而生,融合时序、关系与 AI 的未来数据库

目录: 引言:AIoT 数据洪流下的数据库“窘境”KaiwuDB 2.0:为 AIoT “量身定制”的智能数据基座核心利器:多模融合 + 原生 AI,解锁数据新范式不止于云:KaiwuDB Lite 轻装上阵边缘计算硬核实力:AIoT 场景下的显著优势技术基因:融合创新,构筑未来数据架构应用蓝图:深耕 A…...

Python打卡训练营Day22

浙大疏锦行 DAY 22 复习日 复习日 仔细回顾一下之前21天的内容&#xff0c;没跟上进度的同学补一下进度。 作业&#xff1a; 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 kaggle 一、Kaggle 核心功能学习参考 注册与基础设置…...

Oracle — 内置函数

介绍 Oracle内置函数是数据库中预定义的编程工具&#xff0c;用于简化数据处理与计算逻辑。这些函数分为单行函数和聚合函数两大类。单行函数针对每条数据独立运算&#xff0c;例如LOWER函数转换文本为小写&#xff0c;ROUND实现数值四舍五入&#xff0c;TO_CHAR格式化日期输出…...

Kubernetes基础(三十二):Worker节点启动全解析

Worker节点是Kubernetes集群的"肌肉"&#xff0c;负责实际运行业务负载。本文将深入剖析Worker节点的完整启动流程&#xff0c;并揭秘生产环境中的关键优化点。 一、启动流程全景图 二、核心启动阶段详解 1. 系统初始化&#xff08;0-30秒&#xff09; 关键任务&a…...

“爱生活”小项目问题总结

目录 爱生活小程序 1.用户登录和注册模块遇到的问题 1.1在使用密码加密时&#xff0c;注册新用户&#xff0c;客户端响应401的问题 原因&#xff1a; 正确操作&#xff1a; 1.2在设置密码加密后&#xff0c;发送post登录请求&#xff0c;服务器出现报错java.lang.reflect.…...