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

【Java学习】枚举(匿名类详解)

目录

一、匿名类

1.形式

2.性质

2.1匿名性

2.1.1同步性

使用场景

2.1.2复用性

2.1.3向上转型

2.2实现性

3.传参

3.1构造传全参

3.1.1过程

3.1.2效果

2.1.4原子类构造无参

4.权限

二、枚举类

1.枚举常量

2.性质

2.1多态性

2.2单例性

2.2.1private保护

2.2.2final保护

2.3final修饰

2.3.1类保护

2.3.1.1常量性

2.3.1.2单例特性 

枚举类内部匿名的豁免

2.3.2方法限制

2.3.3变量要求

2.3.3.1非静态成员

2.3.3.2静态成员

3.结构

3.1二次继承

3.2代码省略

原版代码

4.方法使用

4.1获取

4.1.1获取枚举常量

4.1.1.1获取一个枚举常量:

4.1.1.2获取所有枚举常量:

4.1.2获取枚举常量序号:

4.2比较:


一、匿名类

匿名子类,继承于父类,是用 父类原子类纯内容{} 直接拼接继承合成子类,存在于new结构中的 方法内部中的,都是 继承扩展的 子类内部类


1.形式

匿名子类的创建结构为 new 父类构造方法(构造全参) {原子类扩展内容};


2.性质

2.1匿名性

2.1.1同步性

只有在new实例化同步允许这种 拼接继承合成的 匿名子类,所以匿名子类的拼接继承创建匿名子类的实例化创建后紧接着立马实例化使用 同步进行的,如果匿名子类 创建了 不立即去使用的,到后面再使用的话 都没名字的 根本无法使用到它

使用场景

适用于 只用一次 不复用 立马临时创建出 多态下 去应付针此情况下的 此态子类的 实例对象快速实现接口 或 继承抽象类 直接只为应付此时情况的 去一次性创建对象


2.1.2复用性

原子类 只有内容 没有类名,父类与原子类继承合成的 匿名子类 也就没有类名直接用拼接表示的,匿名类没有名字,无法代指,类结构一样的 匿名类的表示 都得从头重新表示起不能代指 表示复用,代码复用性差


2.1.3向上转型

创建出的匿名子类 无类名的,无法用它匿名类 创建实例引用来接收,只能用 有类名的父类 来创建实例引用 接收,即匿名子类实例化对象 创建出来后 用它的父类 向上转型来接 来使用


2.2实现性

匿名子类 原子类的 扩展部分 因为外面即将对匿名子类 整体实例化new扩展部分 必须扩展使 匿名子类继承后是实现类,如果父类那边是抽象下来的,匿名子类这边 就不能继续抽象继承下去,必须立马实现掉所有抽象方法,继承为实现类 从而进行实例化


3.传参

3.1构造传全参

因为 子类是 原子类与上面所有父类的 整体任何一个子类 构造方法的传参 都是为 原子类与为上面全父类 一次全传好的,原子类与所有父类的构造方法的传参 所有都要顾及到的 往上传


3.1.1过程

原子类这边 接到所有类的 构造参数原子类对应的参数 它构造使用后,将剩余的参数 接着往它的 直接父类传,剩余参数中 直接父类对应使用了 它构造方法的参数后 又把再剩下的 往它的父类 全再传


3.1.2效果

从原子类传的 全参数 到此层 此层的构造使用完后 接着再为上层 所有父类 剩余地 全传,传的全参 在一次次到达所对应的父类构造器使用后 每次传的全参 也就慢慢地减少


2.1.4原子类构造无参

匿名子类的原子类 没有名字 没构造方法的,所以 匿名子类构造 传的参 全是它上面父类部分的,传的参数为 直接父类枚举类Operation构造方法的一个String字符串 与再上层父类Enum的一个String字符串与一个int整数


4.权限

匿名类内部 只能访问外部final常量或等效final的变量


二、枚举类

1.枚举常量

枚举常量即枚举对象,是枚举类匿名子类实例化对象,在枚举类加载完 就立马实例化 匿名子类,将枚举对象 也静态加载存储在 枚举类变量中静态存储,作为final静态实例 在类加载初始化后 就不可变的


2.性质

2.1多态性

每一个枚举对象 可不同子类地扩展 成不同的匿名子类 来实例化创建出 多态的枚举对象


2.2单例性

枚举类的 所有匿名子类 只有的是 枚举类自身里面创建时 自创的每一个枚举常量都是 只由只能在枚举类里面创建的(虽然不同的枚举类里面 可以创建相同父类成员String 即相同名字的 枚举常量对象,但因为 它们在不同的类中定义的,枚举对象的访问 是先通过枚举类变量 来静态访问的,最前面的枚举类不同 就会有区别 不同的


2.2.1private保护

在类外,枚举类的构造方法 是被private修饰,在类外 无法使用构造方法 new实例化 枚举常量


2.2.2final保护

枚举类 是固定被final修饰的,所以就算 用反射 获取枚举类的构造器 再配合子类扩展部分 来实例化new时,是先有匿名子类 才有实例化它 出匿名子类的实例对象的,由于枚举类 始终是final修饰的 就是不可被继承的,不可被继承出有子类 包括new时拼接继承合成的 匿名子类,再加上用反射 获取枚举类的构造器 也是被禁止


2.3final修饰

2.3.1类保护

枚举类固定被final修饰表示类不会被继承,就不可能有子类

2.3.1.1常量性

不可能出现有 发生向上转型的枚举类 通过在下面类外 重写修改 使枚举类固定常量性的方法 发生改变,保护了枚举对象的 常量固定性


2.3.1.2单例特性 

阻止了 反射 在类外 多例地 再创建枚举常量,保护了枚举的单例特性


枚举类内部匿名的豁免

为什么枚举类被final修饰 但在内部 可以继承它 创建出它的匿名子类,从而创建有枚举对象?

因为枚举类里面的匿名子类 是编译器通过 直接生成 枚举类子类 字节码来创建的绕过了 final对不可创建子类的 检查限制,使得枚举类的匿名子类 可以发生,枚举常量 得以具有多态性


2.3.2方法限制

枚举方法如果被final修饰,表示 方法不会被覆盖重写,但枚举类层面 就已经固定被final修饰的 已确保了不会有继承 方法不会被重写方法去用final修饰 只会限制枚举常量的 重写多态性


2.3.3变量要求

变量如果被final修饰,表示变量里存储的值 不会改变,即变为常量

枚举常量引用变量 固定被final修饰的,表示引用里 存储的地址 不会改变,即引用的指向 不会改变,但枚举常量引用 指向的内容 即枚举类变量里面的 其它成员变量 如果不用final修饰 就可以改变,就会破坏枚举常量 对应值的 常量对应性 而破坏常量的语义,所以 其它成员变量 必须手动加有final修饰,加上后:

2.3.3.1非静态成员

枚举常量创建时 每次对非静态常量 实例化创建的 每次的复制变量 值对应赋上枚举对象就是 固定指向 复制常量成员里的 常量值


2.3.3.2静态成员

final修饰的 静态常量 属于类层面的 一次创建赋上的,枚举对象 固定指向 静态常量成员里的常量值


3.结构

enum Operation {//枚举类 OperationADD("示例-枚举类Operation的 构造传参String") {//ADD 是静态存储的枚举常量,匿名子类的实例对象引用
//匿名子类的原子类层 没有构造方法,它的构造方法传参 固定只传的是 上面父类构造的参数,即枚举类变量的构造参数、Enum类的构造参数(省略了已由编译器完成的)public int apply(int a, int b) { return a + b; }//匿名子类的 原子类扩展部分,要求实现抽象方法 成为实现类},SUBTRACT("示例-枚举类Operation的 构造传参String"){//枚举常量 SUBTRACTpublic int apply(int a, int b) { return a - b; }};public final String ShiLi;//枚举类的 非静态成员变量Operation(String ShiLi) {//枚举类的 构造方法this.ShiLi = ShiLi;}public abstract int apply(int a, int b);//枚举类的 抽象方法,去实现了枚举常量的多态性
}

3.1二次继承

Enum类 往下继承枚举类枚举类 往下继承匿名子类,枚举常量 是Enum的子类枚举类 的子类匿名子类 二次继承下的实例对象


3.2代码省略

匿名子类的new 父类构造方法(构造全参) {原子类扩展内容};结构被大大地省略掉了:

只留了 实例化匿名子类 结果出的 枚举常量父类Enum传参被省略 只留了给父类枚举类 构造传的参匿名子类原子类的 {}扩展内容

原版代码
abstract class Operation extends Enum<Operation> {//枚举类Operation继承Enum类//匿名子类实例引用即枚举常量ADD             匿名子类,继承枚举类Operationstatic final Operation ADD = new Operation("ADD", 0, "示例-枚举类的传参") {//Operation向上转型接收匿名子类实例      //匿名子类的原子类 没有构造方法,它的构造方法传参 传上面两个父类构造的参数public int apply(int a, int b) {return a + b;}};public final String ShiLi;Operation(String ShiLi) {//枚举类的 构造方法this.ShiLi = ShiLi;}public abstract int apply(int a, int b);//枚举类的 抽象方法
}

4.方法使用

4.1获取

4.1.1获取枚举常量
4.1.1.1获取一个枚举常量:

Operation.valueOf("枚举常量名");

—> return Operation

调用枚举类的静态方法,查找 在该枚举类中存储的 该字符串名称的枚举常量 并返回,枚举常量 在创建出来时 就已经直接向上转型

4.1.1.2获取所有枚举常量:

Operation.values();

—> return Operation[]

调用枚举类的静态方法,将枚举类里面存储的 已向上转型的 枚举常量 以枚举类类型 数组 返回


4.1.2获取枚举常量序号:

Operation.ADD.ordinal();

—> return int

将此枚举常量的 父类序号成员 记录的 定义序号 返回


4.2比较:

Operation.ADD.compareTo(枚举常量);

—> return int

将此枚举常量 与另一个枚举常量 进行定义序号的 大小比较

相关文章:

【Java学习】枚举(匿名类详解)

目录 一、匿名类 1.形式 2.性质 2.1匿名性 2.1.1同步性 使用场景 2.1.2复用性 2.1.3向上转型 2.2实现性 3.传参 3.1构造传全参 3.1.1过程 3.1.2效果 2.1.4原子类构造无参 4.权限 二、枚举类 1.枚举常量 2.性质 2.1多态性 2.2单例性 2.2.1private保护 2.2…...

力扣题解:2、两数相加

个人认为&#xff0c;该题目可以看作合并两个链表的变种题&#xff0c;本题与21题不同的是&#xff0c;再处理两个结点时&#xff0c;对比的不是两者的大小&#xff0c;而是两者和是否大于10&#xff0c;加法计算中大于10要进位&#xff0c;所以我们需要声明一个用来标记是否进…...

PyTorch API 9 - masked, nested, 稀疏, 存储

文章目录 torch.randomtorch.masked简介动机什么是 MaskedTensor&#xff1f; 支持的运算符一元运算符二元运算符归约操作查看与选择函数 torch.nested简介构造方法数据布局与形状支持的操作查看嵌套张量的组成元素填充张量的相互转换形状操作注意力机制 与 torch.compile 的配…...

linux测试硬盘读写速度

#!/bin/bash # 文件名&#xff1a; disk_rate.sh # linux测试硬盘读写速度 TEST_FILE"disk_speed_test.tmp" TEST_SIZE"1024M" echo "开始测试磁盘写入速度..." WRITE_RESULT$(dd if/dev/zero of$TEST_FILE bs$TEST_SIZE count1 oflagdirect 2…...

单片机系统设计不同开发方式的优缺点(面包板,洞洞板,PCB板)

目录 快速验证代码逻辑 涉及具体电路较多 涉及高频电路 快速验证代码逻辑 面包板&#xff0c;无焊接&#xff0c;适合快速搭建临时电路。优点应该是使用方便&#xff0c;不需要焊接&#xff0c;可以随时更换元件。但缺点可能是不稳定&#xff0c;接触不良&#xff0c;不适合高…...

数字信号处理|| 快速傅里叶变换(FFT)

一、实验目的 &#xff08;1&#xff09;加深对快速傅里叶变换&#xff08;FFT&#xff09;基本理论的理解。 &#xff08;2&#xff09;了解使用快速傅里叶变换&#xff08;FFT&#xff09;计算有限长序列和无限长序列信号频谱的方法。 &#xff08;3&#xff09;掌握用MATLA…...

基于CNN卷积神经网络的带频偏QPSK调制信号检测识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…...

数据库索引详解:原理 · 类型 · 使用 · 优化

在关系型数据库中&#xff0c;索引&#xff08;Index&#xff09;是提高查询性能的利器。合理设计和使用索引&#xff0c;可以极大地减少 IO 操作&#xff0c;提升查询效率&#xff1b;但滥用或误用索引&#xff0c;却可能带来维护开销和性能瓶颈。我将从以下几个方面&#xff…...

Java大数据可视化在城市空气质量监测与污染溯源中的应用:GIS与实时数据流的技术融合

随着城市化进程加速&#xff0c;空气质量监测与污染溯源成为智慧城市建设的核心议题。传统监测手段受限于数据离散性、分析滞后性及可视化能力不足&#xff0c;难以支撑实时决策。2025年4月27日发布的《Java大数据可视化在城市空气质量监测与污染溯源中的应用》一文&#xff0c…...

【基于 LangChain 的异步天气查询3】OpenWeather实现实时天气查询

目录 一、项目功能概述 1、城市识别&#xff08;GeoNames API&#xff09; 2、天气数据获取&#xff08;OpenWeather API&#xff09; 3、AI 分析天气&#xff08;deepseek-r1&#xff09; 4、异步运行支持 5、配置文件隔离&#xff08;.env&#xff09; 二、注册 OpenW…...

.Net HttpClient 管理客户端(初始化与生命周期管理)

HttpClient 初始化与生命周期管理 HttpClient 旨在实例化一次&#xff0c;并在应用程序的整个生命周期内重复使用。 为实现复用&#xff0c;HttpClient类库默认使用连接池和请求管道&#xff0c;可以手动管理(连接池、配置管道、使用Polly); 结合IoC容器、工厂模式(提供了IHt…...

树莓派4的v4l2摄像头(csi)no cameras available,完美解决

根据2025年最新技术文档和树莓派官方支持建议&#xff0c;no cameras available错误通常由驱动配置冲突或硬件连接问题导致。以下是系统化解决方案&#xff1a; 一、核心修复步骤 强制禁用传统驱动 sudo nano /boot/firmware/config.txt确保包含以下配置&#xff08;2025年新版…...

VBA将PDF文档内容逐行写入Excel

VBA是无法直接读取PDF文档的&#xff0c;但结合上期我给大家介绍了PDF转换工具xpdf-tools-4.05&#xff0c;先利用它将PDF文档转换为TXT文档&#xff0c;然后再将TXT的内容写入Excel&#xff0c;这样就间接实现了将PDF文档的内容导入Excel的操作。下面的代码将向大家演示如何实…...

【STM32 学习笔记】USART串口

注意&#xff1a;在串口助手的接收模式中有文本模式和HEX模式两种模式&#xff0c;那么它们有什么区别&#xff1f;   文本模式和Hex模式是两种不同的文件编辑或浏览模式&#xff0c;不是完全相同的概念。文本模式通常是指以ASCII编码格式表示文本文件的编辑或浏览模式。在文…...

位图布隆过滤器

1.位图 所谓位图&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于海量数据&#xff0c;整数&#xff0c;数据无重复的场景。通常是用来判 断某个数据存不存在的。 如上例子&#xff0c;10个整数本应该存放需要40个字节&#xff0c;此时用位图只需要3个字节。 下面代…...

【Web】使用Vue3开发鸿蒙的HelloWorld!

文章目录 1、简介2、效果3、环境3.1、开发环境3.2、运行环境 4、实现4.1、在VSCode上使用Vue开发HelloWorld4.1.1、通过 Vite 快速创建项目4.1.2、修改 src/App.vue4.1.3、模拟Web浏览器运行 4.2、使用DevEco完成手机App端移植4.2.1、构建Vue 3项目为静态文件4.2.2、创建Harmon…...

cv_area_center()

主题 用opencv实现了halcon中area_center算子的功能&#xff0c; 返回region的面积&#xff0c;中心的行坐标和中心的列坐标 代码很简单 def cv_area_center(region):area[]row []col []for re in region:retval cv2.moments(re)area.append(retval[m00])row.append(int(r…...

Python+OpenCV实现手势识别与动作捕捉:技术解析与应用探索

引言&#xff1a;人机交互的新维度 在人工智能与计算机视觉技术飞速发展的今天&#xff0c;手势识别与动作捕捉技术正逐步从实验室走向大众生活。通过Python的OpenCV库及MediaPipe等工具&#xff0c;开发者能够以较低门槛实现精准的手部动作识别&#xff0c;为虚拟现实、智能家…...

【llama-factory】Lora微调和DPO训练

微调参考 DPO参考 llama-factory官网 LoRA微调 数据集处理 数据集格式和注册 Alpaca数据集格式&#xff1a; [{"instruction": "人类指令&#xff08;必填&#xff09;","input": "人类输入&#xff08;选填&#xff09;","…...

JS较底层的用法,几类简单介绍

JS较底层的用法 在 JavaScript 中&#xff0c;“偏底层”的用法通常是指更接近语言核心、规范、底层机制的特性。这些用法不是日常开发中最常见的&#xff0c;但对理解语言原理、优化性能或构建框架、库非常重要。下面是一些常见的“偏底层”用法或特性 1. 对象属性底层操作&am…...

当可视化遇上 CesiumJS:突破传统,打造前沿生产配套方案

CesiumJS 技术基础介绍 CesiumJS 是一款基于 JavaScript 的开源库&#xff0c;专门用于创建动态、交互式的地理空间可视化。它利用 WebGL 技术&#xff0c;能够在网页浏览器中流畅地渲染高分辨率的三维地球和地图场景。CesiumJS 支持多种地理空间数据格式&#xff0c;包括但不…...

使用python脚本连接SQL Server数据库导出表结构

一. 准备工作 Mac 系统安装freetds brew install freetds 安装pymssql pip3 install pymssql 二.导出指定表的结构&#xff1a; import pymssql# 配置数据库连接参数&#xff08;根据实际情况修改&#xff09; server # 内网服务器地址或IP database # 数据库名称…...

Docker基础入门

Docker核心概念 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口&#xff08;类似 iPhone 的 app&#…...

day011-权限管理专题

文章目录 1. 对比文件内容1.1 diff1.2 vimdiff 2. /etc/skel目录3. 权限基础4. 修改权限4.1 用数字权限修改4.2 用字母修改权限&#xff08;ugo&#xff09;4.3 修改文件所有者和用户组 5. 文件与目录权限6. permission denied 权限拒绝7. 特殊权限8. 特殊属性9. 思维导图 1. 对…...

ragflow报错:KeyError: ‘\n “序号“‘

环境&#xff1a; ragflowv 0.17.2 问题描述&#xff1a; ragflow报错&#xff1a;KeyError: ‘\n “序号”’ **1. 推荐表&#xff08;输出json格式&#xff09;** [{"},{},{"},{} ]raceback (most recent call last): May 08 20:06:09 VM-0-2-ubuntu ragflow-s…...

基于FPGA的PID控制器verilog实现,包含simulink对比模型

目录 1.课题概述 2.系统测试效果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 根据PID控制器的原理&#xff0c;设计FPGA的总体架构。通常包括误差计算模块、比例运算模块、积分运算模块、微分运算模块、加法器模块以及控制信号输出模块等。同时通过simul…...

互联网大厂Java面试实录:Spring Boot与微服务架构在电商场景中的应用解析

&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通 &#x1f601; 2. 毕业设计专栏&#xff0c;毕业季咱们不慌忙&#xff0c;几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…...

前端开发实战:用React Hooks优化你的组件性能

问题背景 在前端开发中&#xff0c;React组件的性能优化是一个常见挑战。尤其是当组件逻辑复杂或数据频繁更新时&#xff0c;性能问题尤为突出。本文将介绍如何利用React Hooks&#xff08;如useMemo和useCallback&#xff09;来优化组件性能。 解决方案 useMemo&#xff1a;用…...

Kotlin 内联函数深度解析:从源码到实践优化

一、内联函数核心概念 1. 什么是内联函数&#xff1f; 内联函数通过 inline 关键字修饰&#xff0c;其核心思想是&#xff1a;在编译时将函数体直接插入到调用处&#xff0c;而非进行传统的函数调用。这意味着&#xff1a; 消除了函数调用的栈帧创建、参数传递等开销。对 La…...

模拟太阳系(C#编写的maui跨平台项目源码)

源码下载地址&#xff1a;https://download.csdn.net/download/wgxds/90789056 本资源为用C#编写的maui跨平台项目源码&#xff0c;使用Visual Studio 2022开发环境&#xff0c;基于.net8.0框架&#xff0c;生成的程序为“模拟太阳系运行”。经测试&#xff0c;生成的程序可运行…...

python中的继承和多态

Python中的继承 继承中的一些基础的定义 继承是面向对象编程的三大特性之一&#xff0c;它允许一个类&#xff08;子类&#xff09;继承另一个类&#xff08;父类&#xff09;的属性和方法&#xff0c;从而实现代码的复用&#xff08;继承的主要目的&#xff09;和扩展。父类…...

【计算机视觉】3DDFA_V2中表情与姿态解耦及多任务平衡机制深度解析

3DDFA_V2中表情与姿态解耦及多任务平衡机制深度解析 1. 表情与姿态解耦的技术实现1.1 参数化建模基础1.2 解耦的核心机制1.2.1 基向量正交化设计1.2.2 网络架构设计1.2.3 损失函数设计 1.3 实现代码解析 2. 多任务联合学习的权重平衡2.1 任务定义与损失函数2.2 动态权重平衡策略…...

vue访问后端接口,实现用户注册

文章目录 一、后端接口文档二、前端代码请求响应工具调用后端API接口页面函数绑定单击事件&#xff0c;调用/api/user.js中的函数 三、参考视频 一、后端接口文档 二、前端代码 请求响应工具 /src/utils/request.js //定制请求的实例//导入axios npm install axios import …...

MySQL 从入门到精通(五):索引深度解析 —— 性能优化的核心武器

目录 一、索引概述&#xff1a;数据库的 “目录” 1.1 什么是索引&#xff1f; 1.2 索引的性能验证&#xff1a;用事实说话 实验环境准备 无索引查询耗时 有索引查询耗时 索引的 “空间换时间” 特性 二、索引的创建&#xff1a;三种核心方式 2.1 方式 1&#xff1a;C…...

湖北理元理律师事务所:债务优化如何实现还款与生活的平衡?

债务压力往往让债务人陷入“还款还是生存”的两难选择。湖北理元理律师事务所通过案例实践发现&#xff0c;科学规划的核心在于平衡法律义务与基本生活保障&#xff0c;而非单纯追求债务缩减。本文结合实务经验&#xff0c;解析债务优化的可行路径。 刚性需求优先&#xff1a;…...

Day21 奇异值分解(SVD)全面解析

一、奇异值分解概述 奇异值分解是线性代数中一个重要的矩阵分解方法&#xff0c;对于任何矩阵&#xff0c;无论是结构化数据转化成的“样本 * 特征”矩阵&#xff0c;还是天然以矩阵形式存在的图像数据&#xff0c;都能进行等价的奇异值分解&#xff08;SVD&#xff09;。 二…...

【vue】vuex实现组件间数据共享 vuex模块化编码 网络请求

目录 一、vuex实现组件间数据共享 二、 vuex模块化编码 三、网络请求 模块化命名空间小结: 总结不易~ 本章节对我有很大的收获&#xff0c; 希望对你也是&#xff01;&#xff01;&#xff01; 本节素材已上传Gitee&#xff1a;yihaohhh/我爱Vue - Gitee.comhttps://gitee.…...

红黑树删除的实现与四种情况的证明

&#x1f9ed; 学习重点 删除节点的三种情况红黑树如何恢复性质四种修复情况完整可运行的 C 实现 一、红黑树删除的基础理解 红黑树删除比插入复杂得多&#xff0c;因为&#xff1a; 删除的是黑节点可能会破坏“从根到叶子黑节点数相等”的性质。删除红节点无需修复&#xf…...

FHE与后量子密码学

1. 引言 近年来&#xff0c;关于 后量子密码学&#xff08;PQC, Post-Quantum Cryptography&#xff09; 的讨论愈发热烈。这是因为安全专家担心&#xff0c;一旦有人成功研发出量子计算机&#xff0c;会发生什么可怕的事情。由于 Shor 算法的存在&#xff0c;量子计算机将能够…...

使用FastAPI和React以及MongoDB构建全栈Web应用04 MongoDB快速入门

一、NoSQL 概述 1.1 了解关系数据库的局限性 Before diving into NoSQL, it’s essential to understand the challenges posed by traditional Relational Database Management Systems (RDBMS). While RDBMS have been the cornerstone of data management for decades, th…...

C++:this指针

class date { public:void f(int i){} } 以上是我们定义的一个简单的类&#xff0c;这个类里面含有一个简单的成员函数&#xff0c;成员函数看似只有一个参数&#xff0c;实际上是两个参数&#xff0c;除了参数i以外&#xff0c;还有一个指向调用该函数的对象的指针——this指…...

如何在postman使用时间戳

1. 使用 Pre-request Script 动态转换​ 在发送请求前&#xff0c;将日期字符串转为时间戳并存储为环境变量/全局变量。 ​示例代码​ // 将日期字符串&#xff08;如 "2023-10-01"&#xff09;转为时间戳&#xff08;毫秒&#xff09; const dateString "2…...

OCP开闭原则

OCP&#xff0c;software entities(modules,classes,functions,etc.)should be openfor extension, but closed for modification. 软件实体&#xff08;模块、类和方法等&#xff09;应该对扩展开发&#xff0c;对修改关闭。 OCP特点 提高可扩展性&#xff1a;新功能通过添…...

计算机网络:什么是Mesh组网以及都有哪些设备支持Mesh组网?

Mesh组网技术详解与实现工具推荐 Mesh组网是一种通过多个节点路由器协同工作,形成覆盖全屋的无线网络的技术。它通过动态路径调整、无缝漫游和自愈能力,解决传统单一路由器覆盖不足的问题,尤其适合大户型、多层住宅或复杂户型环境。以下是Mesh组网的核心原理、实现方式及推…...

STM32f103 标准库 零基础学习之点灯

前提&#xff1a;你已经下好了标准外设库&#xff0c;如果没有可以去找找教程 ST官网上可以下载 目录 前提&#xff1a;你已经下好了标准外设库&#xff0c;如果没有可以去找找教程 ST官网上可以下载 点灯逻辑 1. 定义 GPIO 初始化结构体 2. 开启GPIOA的时钟…...

uniapp使用ui.request 请求流式输出

正文&#xff1a; 在现代Web开发中&#xff0c;实时数据流和长时间运行的请求变得越来越常见&#xff0c;尤其是在处理大量数据或进行实时通信时。在这种情况下&#xff0c;uniapp 提供的 ui.request 请求方法可以帮助我们轻松实现流式输出请求。本文将介绍如何使用 uni.reques…...

MATLAB安装常见问题及解决方案详解(含代码示例)

MATLAB作为科学计算和工程分析的核心工具&#xff0c;其安装过程可能因操作系统版本、硬件配置或网络环境等因素而出现各种问题。本文基于MATLAB官方文档和社区经验&#xff0c;系统总结了安装过程中常见的问题&#xff0c;并提供详细的解决方案和代码示例&#xff0c;帮助用户…...

【Java ee初阶】网络编程 UDP socket

网络编程 socket api 是传输层提供的api。 UDP 无连接&#xff0c;不可靠传输&#xff0c;面向数据报&#xff0c;全双工。 TCP 有链接&#xff0c;可靠传输&#xff0c;面向字节流&#xff0c;全双工。 UDP socket api 数据报 DatagrammSocket 代表了操作系统中的socket文…...

BeanPostProcessor和AOP

BeanPostProcessor Spring中有一个接口Oredr的getOrder()方法&#xff0c;这个方法返回值是一个int类型&#xff0c;Spring容器会根据这个方法的返回值 对容器的多个Processor对象从小到大排序&#xff0c;创建Bean时候依次执行他们的方法&#xff0c;也就是说getOrder()方法的…...

django的权限角色管理(RBAC)

在 Django 中&#xff0c;User、Group 和 Permission 是权限系统的核心组件。下面通过代码示例演示它们的 CRUD&#xff08;创建、读取、更新、删除&#xff09; 操作&#xff1a; 一、User 模型 CRUD from django.contrib.auth.models import User# 创建用户 user User.obje…...