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

协享云图分析--3用户模块

用户表

-- 用户表
create table if not exists user
(id           bigint auto_increment comment 'id' primary key,userAccount  varchar(256)                           not null comment '账号',userPassword varchar(512)                           not null comment '密码',userName     varchar(256)                           null comment '用户昵称',userAvatar   varchar(1024)                          null comment '用户头像',userProfile  varchar(512)                           null comment '用户简介',userRole     varchar(256) default 'user'            not null comment '用户角色:user/admin',editTime     datetime     default CURRENT_TIMESTAMP not null comment '编辑时间',createTime   datetime     default CURRENT_TIMESTAMP not null comment '创建时间',updateTime   datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',isDelete     tinyint      default 0                 not null comment '是否删除',UNIQUE KEY uk_userAccount (userAccount),INDEX idx_userName (userName)
) comment '用户' collate = utf8mb4_unicode_ci;

1. UNIQUE KEY uk_userAccount (userAccount)

  • 定义了一个唯一约束(Unique Key),确保userAccount字段的值在表中必须唯一。
  • 如果尝试插入或更新一条重复的userAccount值,数据库会报错。

2. INDEX idx_userName (userName)

  • 定义了一个普通索引(Index),用于加速基于userName字段的查询操作。
  • 索引不会强制唯一性,但可以显著提高查询性能,尤其是在大数据量的情况下。

用户登录流程

@startuml
actor Frontend
participant Server
participant BrowserFrontend -> Server: 建立连接
Server -> Frontend: 创建匿名Session,返回Session ID
Frontend -> Server: 提交登录信息(用户名 & 密码)
Server -> Server: 验证登录信息
Server -> Server: 更新Session,存储用户信息
Server -> Frontend: 返回Set - Cookie指令(Session ID)
Frontend -> Browser: 浏览器保存Cookie(Session ID)
Frontend -> Server: 后续请求时自动附带Cookie
Server -> Server: 提取Cookie,查找对应Session
Server -> Server: 从Session中获取用户信息
Server -> Frontend: 返回处理结果(如页面或数据)
@enduml

绘图代码UML

绘图网站

PlantUML Web Server

这是一张描述用户登录及后续会话管理流程的时序图。
图中包含前端(Frontend)、服务器(Server)和浏览器(Browser)三个角色 ,具体流程如下:

  1. 建立连接:前端与服务器建立连接。
  2. 创建匿名会话:服务器创建匿名 Session,并向前端返回 Session ID。
  3. 提交登录信息:前端将用户名和密码等登录信息提交给服务器。
  4. 验证与更新:服务器验证登录信息,验证通过后更新 Session,存储用户信息。
  5. 设置 Cookie:服务器向前端返回 Set - Cookie 指令,其中包含 Session ID。
  6. 保存 Cookie:前端收到指令后,浏览器保存该 Cookie(Session ID) 。
  7. 后续请求:后续浏览器向服务器发起请求时,会自动附带该 Cookie。
  8. 获取用户信息:服务器提取 Cookie,查找对应的 Session,从中获取用户信息。
  9. 返回结果:服务器将处理结果(如页面或数据)返回给前端。

实体类

定义了一个名为User的类,并实现了Serializable接口。

Serializable接口

实现Serializable接口表示该类的对象可以被序列化,即可以将对象的状态保存到文件或通过网络传输。

雪花算法

@TableId(type = IdType.ASSIGN_ID)

@TableId 注解标识该字段为数据库表的主键。
type = IdType.ASSIGN_ID 指定主键生成策略为 ASSIGN_ID,通常表示使用分布式唯一ID生成器(如Snowflake算法)生成主键。

雪花算法(Snowflake Algorithm)是由Twitter提出的一种分布式唯一ID生成算法,能够生成全局唯一的64位整数ID。其结构通常包括时间戳、机器ID、数据中心ID和序列号等部分,保证了在分布式系统中的唯一性。
在提供的代码中,雪花算法的体现如下:
第10行:@TableId(type = IdType.ASSIGN_ID) 这里指定了主键生成策略为 IdType.ASSIGN_ID,该策略通常基于雪花算法实现,用于生成分布式环境下的唯一ID。

枚举类

UserRoleEnum用户角色枚举

定义了一个名为 UserRoleEnum 的枚举类,用于表示用户角色。
定义了三种用户角色:普通用户(USER)、会员(VIP)和管理员(ADMIN),每种角色包含文本描述和值。
提供了一个静态方法 getEnumByValue,根据传入的值查找并返回对应的枚举对象,若未找到或值为空,则返回 null。

model.dto.user

UserRegisterRequest用户注册请求

service

UserService

定义了一个名为 UserService 的接口,用于处理用户相关的业务逻辑。

  1. 用户注册:通过校验账户和密码完成新用户注册。
  2. 用户登录:验证账户和密码,并返回脱敏后的用户信息。
  3. 密码加密:提供密码加密功能。
  4. 获取当前登录用户:从请求中提取登录用户信息。
  5. 脱敏用户信息:生成脱敏后的用户信息或列表。
  6. 用户注销:清除登录状态。
  7. 条件查询:构建用户查询条件。
  8. 管理员判断:检查用户是否为管理员。
  9. 会员兑换:通过会员码兑换会员资格。

IService

这段代码定义了一个名为UserService的接口,该接口继承了泛型接口IService<User>。这意味着UserService接口将用于处理与User实体相关的业务逻辑,并且可以使用IService中定义的所有方法。

IService<User> 是 MyBatis-Plus 框架提供的一个通用服务接口,它继承自 IService,并针对泛型实体类(这里是 User)提供了丰富的 CRUD 方法。以下是 IService 中常见的方法列表:
1. 基本增删改查

  • boolean save(User entity):新增记录
  • boolean removeById(Serializable id):根据 ID 删除记录
  • boolean updateById(User entity):根据 ID 修改记录
  • User getById(Serializable id):根据 ID 查询记录

2. 批量操作

  • boolean saveBatch(Collection<User> entities):批量新增
  • boolean removeBatchByIds(Collection<? extends Serializable> ids):批量删除
  • boolean updateBatchById(Collection<User> entities):批量修改

3. 查询相关

  • List<User> list():查询所有记录
  • List<User> listByIds(Collection<? extends Serializable> ids):根据多个 ID 查询记录
  • IPage<User> page(Page<User> page):分页查询

4. 统计相关

  • long count():统计记录总数

这些方法可以直接通过 IService 的实现类(如 ServiceImpl)使用。

UserServiceImpl

@Overridepublic long userRegister(String userAccount, String userPassword, String checkPassword) {// 1. 校验参数if (StrUtil.hasBlank(userAccount, userPassword, checkPassword)) {throw new BusinessException(ErrorCode.PARAMS_ERROR, "参数为空");}if (userAccount.length() < 4) {throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户账号过短");}if (userPassword.length() < 8 || checkPassword.length() < 8) {throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户密码过短");}if (!userPassword.equals(checkPassword)) {throw new BusinessException(ErrorCode.PARAMS_ERROR, "两次输入的密码不一致");}// 2. 检查用户账号是否和数据库中已有的重复QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eq("userAccount", userAccount);long count = this.baseMapper.selectCount(queryWrapper);if (count > 0) {throw new BusinessException(ErrorCode.PARAMS_ERROR, "账号重复");}// 3. 密码一定要加密String encryptPassword = getEncryptPassword(userPassword);// 4. 插入数据到数据库中User user = new User();user.setUserAccount(userAccount);user.setUserPassword(encryptPassword);user.setUserName("无名");user.setUserRole(UserRoleEnum.USER.getValue());boolean saveResult = this.save(user);if (!saveResult) {throw new BusinessException(ErrorCode.SYSTEM_ERROR, "注册失败,数据库错误");}return user.getId();}

相关文章:

协享云图分析--3用户模块

用户表 -- 用户表 create table if not exists user (id bigint auto_increment comment id primary key,userAccount varchar(256) not null comment 账号,userPassword varchar(512) not null comment 密码…...

visual studio 如何在 release 模式下调试

在 Visual Studio 中&#xff0c;在 Release 模式下进行调试, 以下是具体步骤&#xff1a; 一、修改项目属性&#xff1a; 右键点击解决方案资源管理器中的项目&#xff0c;选择“属性”。 在“生成”选项卡中&#xff0c;找到“定义 DEBUG 常量”和“定义 TRACE 常量”&…...

课堂总结。

第三章第六节 Spark-SQL核心编程&#xff08;五&#xff09;自定义函数&#xff1a;UDF&#xff1a;val sparkConf new SparkConf().setMaster("local[*]").setAppName("SQLDemo")//创建SparkSession对象val spark :SparkSession SparkSession.builder()…...

JDBC 初认识、速了解

目录 一. JDBC的简介 1. 数据的持久化 2. 什么是JDBC 二. JDBC中常用的类和接口 1. Driver 接口 2. DriverManager 类 3. Connection 接口 4. Statement 接口 5. PreparedStatement接口 6. ResultSet 接口 三. 总结 前言 从现在开始就来讲解JDBC的相关知识了 本文的…...

双指针算法

引入 双指针顾名思义&#xff0c;就是同时使用两个指针&#xff0c;在序列、链表结构上指向的是位置&#xff0c;在树、图结构中指向的是节点&#xff0c;通过或同向移动&#xff0c;或相向移动来维护、统计信息。 ——OI Wiki 接下来我们来看双指针的几个具体使用方法。 板子…...

关于TD算法的笔记【时间差分】

1. TD算法逻辑&#xff1a;TD算法即时间差分算法&#xff0c;结合了蒙特卡洛方法和动态规划思想&#xff0c;通过当前估计值和下一个时间步观测值更新状态价值估计&#xff0c;无需完整episode或环境完整信息。 2. 下一时刻估计值计算&#xff1a;下一时刻估计值为 r_{t 1}\g…...

计算斐波那契数列

1.对于斐波那契数列的理解&#xff1a; (1)常规 该数列由兔子繁衍的想法产生&#xff0c;故又“兔子数列” 其数值为&#xff1a;1、1、2、3、5、8、13、21、34 从数学定义上走&#xff1a;F(0)1&#xff0c;F(1)1, F(n)F(n - 1)F(n - 2)&#xff08;n ≥ 2&#xff0c;n ∈…...

Oracle REGEXP_SUBSTR

在 Oracle 数据库中&#xff0c;REGEXP_SUBSTR 是一个基于正则表达式的字符串处理函数&#xff0c;用于从目标字符串中提取符合特定模式的子串。它比传统的 SUBSTR 函数更灵活&#xff0c;适用于复杂的模式匹配需求。以下是其核心原理、参数解析及实际案例详解&#xff1a; 一…...

无人机自主导航与路径规划技术要点!

一、自主导航与路径规划技术要点 1. 传感器融合 GPS/北斗定位&#xff1a;提供全局定位&#xff0c;但在室内或遮挡环境下易失效。 惯性测量单元&#xff08;IMU&#xff09;**&#xff1a;通过加速度计和陀螺仪实时追踪姿态&#xff0c;弥补GPS信号丢失时的定位空缺。 …...

DDS波形发生器仿真及技术原理

1. 引言 在现代数字信号处理、电路设计以及通信系统中&#xff0c;直接数字频率合成&#xff08;DDS&#xff09;技术因其高速、精细的频率分辨率以及连续相位输出等优点而得到广泛应用。本文主要探讨在DE2-115开发板平台上基于DDS技术实现波形发生器的设计与实践。通过该设计…...

Java使用ANTLR4解析IDL文件

文章目录 前言解析IDL文件准备两个IDL文件准备一个IDL Grammar文件maven配置生成Lexer Parser Listener Visitor代码新建实体类IDL解析遍历器单元测试 参考 前言 接着上篇&#xff1a;Java使用ANTLR4对Lua脚本语法校验&#xff0c;介绍了什么是ANTLR&#xff1f;/ 举了一个hel…...

04-Seata 深度解析:从分布式事务原理到 Seata 实战落地

Seata 深度解析&#xff1a;从分布式事务原理到 Seata 实战落地 一、分布式事务核心理论与挑战 1.1 分布式事务的本质难题 在微服务架构中&#xff0c;一次业务操作可能涉及多个服务的数据库操作&#xff0c;传统单体事务&#xff08;ACID&#xff09;无法跨越服务边界&…...

2025企业增长新引擎:AI Agent驱动人效跃迁|白皮书2.0发布

2025年伊始&#xff0c;一款名为DeepSeek-R1的国产AI大模型以其高性能、低成本等核心优势成功霸榜热搜&#xff0c;在全国乃至全球掀起一场以AI为核心的技术革新与管理变革。 面对这样极具颠覆性的革新命题&#xff0c;易路人力资源科技王天扬先生自2022年起就率团队持续专注于…...

IJCV-2025 | 深圳大学记忆增强的具身导航!ESceme:基于情景记忆的视觉语言导航

作者&#xff1a;Qi Zheng 1 , 2 ^{1,2} 1,2, Daqing Liu 3 ^{3} 3, Chaoyue Wang 3 ^{3} 3, Jing Zhang 2 ^{2} 2, Dadong Wang 4 ^{4} 4, Dacheng Tao 2 ^{2} 2单位&#xff1a; 1 ^{1} 1深圳大学电子与信息工程学院&#xff0c; 2 ^{2} 2悉尼大学计算机科学学院&#xff0c;…...

[第十六届蓝桥杯 JavaB 组] 真题 + 经验分享

A&#xff1a;逃离高塔(AC) 这题就是简单的签到题&#xff0c;按照题意枚举即可。需要注意的是不要忘记用long&#xff0c;用int的话会爆。 &#x1f4d6; 代码示例&#xff1a; import java.io.*; import java.util.*; public class Main {public static PrintWriter pr ne…...

《分布式软总线:网络抖动下的数据传输“定海神针”》

在当下&#xff0c;智能设备之间的互联互通已成为生活与工作的刚需。分布式软总线作为实现这一愿景的关键技术&#xff0c;正日益凸显其重要性。然而&#xff0c;网络环境的复杂性&#xff0c;尤其是网络抖动频繁的情况&#xff0c;给分布式软总线的数据传输带来了严峻挑战。如…...

C++函数

函数 为什么要使用函数 已经有main函数&#xff0c;为什么还要自定义函数&#xff1f;&#xff1a;“避免重复制造轮子”&#xff0c;提高开发效率 函数的定义 函数的设计方法&#xff1a;先确定函数的功能、确定函数的参数、是否需要参数&#xff0c;参数的个数&#xff0c…...

FreeRTOS菜鸟入门(五)·空闲任务与阻塞延时的实现

目录 1. 实现空闲任务 1.1 定义空闲任务的栈 1.2 定义空闲任务的任务控制块 1.3 创建空闲任务 2. 实现阻塞延时 2.1 vTaskDelay()函数 2.2 修改 vTaskSwitchContext()函数 3. SysTick 中断服务函数 4. SysTick 初始化函数 通过之前我们了解知道&#xff0c;任…...

PCIe 学习笔记(一)

系列文章目录 【PCIe】链路测试&#xff0c;数字工程师也要会看高速信号眼图&#xff01; 【PCIe】链路训练状态机(LTSSM) - PCIe链路建立过程概述 【PCIe】PCIe设备的BDF与系统枚举过程 文章目录 系列文章目录PCIe LTSSM**1. 链路训练状态&#xff08;Training States&#…...

【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——LED、按键测试

1&#xff09;实验平台&#xff1a;正点原子ATK-DLMP257B开发板 2&#xff09;浏览产品&#xff1a;https://www.alientek.com/Product_Details/135.html 3&#xff09;全套实验源码手册视频下载&#xff1a;正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试4.1 LED…...

深度为16,位宽8bit的单端口SRAM——学习记录

链接&#xff1a; 【Verilog HDL 训练】第 13 天&#xff08;存储器、SRAM&#xff09;-云社区-华为云 module sram #(parameter ADDR_BITS4)(input clk,input [ 7:0] addr,input [ 7:0] din,input ce,input we,output reg [ 7:0] dout);localparam MEM_DEPTH 1<<ADDR_…...

面向对象编程

在面向对象编程中&#xff0c;除了通过创建类的实例来访问其属性和方法外&#xff0c;还可以通过在一个类里创建另一个类的属性&#xff08;本质上也是持有另一个类的实例引用&#xff09;的方式来访问该类的属性和方法。下面为你详细解释这两种方式&#xff1a; 1. 通过创建实…...

远程登录一个Linux系统,如何用命令快速知道该系统属于Linux的哪个发行版,以及该服务器的各种配置参数,运行状态?

远程登录一个Linux系统&#xff0c;如何用命令快速知道该系统属于Linux的哪个发行版&#xff0c;以及该服务器的各种配置参数&#xff0c;运行状态&#xff1f; 查看Linux发行版信息 查看发行版名称和版本&#xff1a; cat /etc/*-release或 lsb_release -a查看内核版本&#…...

简单socket通信,回显 服务器程序与客户端程序之间的通信。

Socket 通信编程是一种基于网络的通信方式&#xff0c;允许不同主机上的程序通过网络进行数据交换。 实现结构try catch&#xff1a; 前情了解&#xff1a; 1.如何创建服务器端 定义ServerSocket套接字&#xff0c;需要等待客户端连接&#xff0c;阻塞&#xff0c;直到接入连接…...

C# 基类型和派生类型之间的转型

1.什么是基类型和派生类 基类型&#xff1a;父类&#xff0c;所有子类都继承自它。 派生类型&#xff1a;子类&#xff0c;继承了父类的属性和方法&#xff0c;还可以添加自己的新功能。 例子&#xff1a; class Animal { }//基类型 class Dog : Animal { }//派生类型 这…...

深度学习--激活函数

激活函数通过计算加权和并加上偏置来确定神经元是否应该倍激活&#xff0c;它们将输入信号转换为输出的可微运算。大多数激活函数都是非线性的&#xff0c;由于激活函数是深度学习的基础&#xff0c;下面简要介绍一些常见的激活函数。 1 RelU函数 最受欢迎的激活函数是修正线性…...

MySQL 缓存机制全解析:从磁盘 I/O 到性能优化

MySQL 缓存机制全解析&#xff1a;从磁盘 I/O 到性能优化 MySQL 的缓存机制是提升数据库性能的关键部分&#xff0c;它通过多级缓存减少磁盘 I/O 和计算开销&#xff0c;从而提高查询和写入的效率。 1. 为什么需要缓存&#xff1f; 数据库的性能瓶颈通常集中在磁盘 I/O 上。…...

【项目管理】第17章 项目干系人管理-- 知识点整理

项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 第6章 项目管理概论 4分第13章 项目资源管理 3-4分第7章 项目…...

编程语言到mysql ‘\‘到数量关系

在 MySQL 的模糊查询中&#xff0c;反斜杠 \ 的转义规则需要根据 转义层级 和 SQL 模式 来确定。以下是详细说明及示例&#xff1a; 一、默认模式下&#xff08;未启用 NO_BACKSLASH_ESCAPES&#xff09; 1. 规则说明 反斜杠转义&#xff1a;\ 是 MySQL 的默认转义字符。 转义…...

本地生活服务平台搭建方案详解:同城跑腿外卖系统源码一体化开发

在数字化浪潮不断推进的今天&#xff0c;本地生活服务平台正逐渐成为人们日常生活中不可或缺的一部分。从点餐外卖到同城帮买、帮送、帮取&#xff0c;用户对即时服务的需求愈发强烈。与此同时&#xff0c;创业者和本地商家也纷纷看好“同城服务 外卖配送”的一体化平台模式&a…...

索引语法SQL性能分析索引的使用

目录 准备: 一.索引语法 1). 创建索引 2). 查看索引 3). 删除索引 4).使用索引查询和普通查询的区别 二.SQL性能分析 1.SQL执行频率 2.慢查询日志 3.profile详情 4.explain 三.索引的使用 1.最左前缀法则 2.范围查询 3.索引失效情况 索引列运算 字符串不加引号…...

Docker技术基础新手入门教程

Docker技术深度解析:从架构到实战的运维指南 一、Docker核心架构与组件详解1. 什么是Docker?1. Docker引擎(Docker Engine)2. Docker对象模型二、关键技术深度剖析1. 容器隔离机制2. 容器网络模型网络驱动类型自定义网络实战3. 存储卷与数据持久化三种挂载方式对比示例:My…...

NO.93十六届蓝桥杯备战|图论基础-拓扑排序|有向无环图|AOV网|摄像头|最大食物链计数|杂物(C++)

有向⽆环图 若⼀个有向图中不存在回路&#xff0c;则称为有向⽆环图(directed acycline graph)&#xff0c;简称 DAG 图 AOV⽹ 举⼀个现实中的例⼦&#xff1a;课程的学习是有优先次序的&#xff0c;如果规划不当会严重影响学习效果。课程间的先后次序可以⽤有向图表⽰ 在…...

Rust泛型与特性

文章目录 泛型函数中的泛型结构体与枚举中的泛型特性&#xff08;trait&#xff09;默认特性Trait作为参数特性做返回值 给结构体实现方法 泛型 泛型编程是现代编程语言中重要的机制 C是通过模板来实现泛型的&#xff0c;而C语言中是没有泛型的 泛型是用来表达抽象类型的机制…...

Day08【基于预训练模型分词器实现交互型文本匹配】

基于预训练模型分词器实现交互型文本匹配 目标数据准备参数配置数据处理模型构建主程序测试与评估总结 目标 本文基于预训练模型bert分词器BertTokenizer&#xff0c;将输入的文本以文本对的形式&#xff0c;送入到分词器中得到文本对的词嵌入向量&#xff0c;之后经过若干网络…...

基于uniapp 实现画板签字

直接上效果图 代码 <template><view class"container"><!-- 签名画布 --><view class"canvas-container"><canvas canvas-id"signCanvas" class"sign-canvas"touchstart"handleTouchStart"touc…...

5.跳表(skiplist)

1. 什么是跳表 -skiplist skiplist 本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树和哈希表的价值是一样的&#xff0c;可以作为key 或者 key/value 的查找模型。 skiplist &#xff0c;顾名思义&#xff0c;首先它是一个 list 。实际上…...

GitHub 封禁中国 IP:影响、原因及应对

在技术全球化的当下&#xff0c;代码托管平台如同开发者的 “数字仓库”&#xff0c;而 GitHub 无疑是其中最广为人知的一座。但在 2025 年 4 月 13 日&#xff0c;一则令人震惊的消息在国内开发者社群中炸开了锅 ——GitHub 疑似封禁中国 IP。一时间&#xff0c;这一事件迅速成…...

基于工业操作系统构建企业数字化生态的实践指南

一、工业操作系统选型策略 工业操作系统&#xff08;IIoT OS&#xff09;的选型需从功能适配性、技术成熟度、生态兼容性三个维度综合评估。以玉麟科技DIOS平台为例&#xff0c;其 "云端 终端" 架构支持全球设备管理&#xff0c;通过工业知识模型实现设备健康度预测…...

金能电力领跑京东工业安全工器具赛道 2025年首季度数据诠释“头部效应”

金能电力领跑京东工业安全工器具赛道 2025年首季度数据诠释“头部效应” 在2025年第一季度京东工业平台“电料辅件-安全工器具”热销品牌的激烈竞争中&#xff0c;金能电力以一组极具说服力的数据&#xff0c;向行业展示了何为“绝对头部”。从成交金额、销量到流量、客群覆…...

基于大模型的反流食管炎手术全流程风险预测与治疗方案研究报告

目录 一、引言 1.1 研究背景 1.2 研究目的 1.3 研究方法与创新点 二、反流食管炎概述 2.1 定义与发病机制 2.2 临床症状与诊断标准 2.3 流行病学现状 三、大模型技术原理与应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用案例 3.3 用于反流食管炎预测的优势 四…...

探索 C 与 Java/Kotlin 的语言差异:从指针到高阶函数

作为一名熟悉 Java 和 Kotlin 的开发者&#xff0c;初次接触 C/C 时常会遇到一系列概念上的“文化冲击”。本文将从几个关键点出发&#xff0c;帮助你更好地理解 C/C 与 Java/Kotlin 在语言设计上的核心区别。 1. 指向未知类型的指针 void*、结构体指针访问 ->、空指针常量 …...

Redis之缓存过期淘汰策略

面试切入点 Redis内存满了怎么办&#xff1f; redis的默认内存多少&#xff1f;在哪里查看&#xff1f;如何设置修改&#xff1f; 查看redis最大占用内存 打开redis配置文件&#xff0c;设置maxmemory参数&#xff0c;maxmemory是bytes字节类型&#xff0c;注意转换。 redi…...

Rust-引用借用规则

目录 一、概述 二、借用规则 三、详细解释 3.1 第一条规则 3.2 第二条规则 3.3 第三条规则 四、总结 Welcome to Code Blocks blog 本篇文章主要介绍了 [Rust-引用借用规则] ❤博主广交技术好友&#xff0c;喜欢文章的可以关注一下❤ 一、概述 Rust为确保程序在运行时不…...

【报错】解决pytorch出现RuntimeError: An attempt has been made to start a new process...

此错误是由于在 Windows 系统中使用多进程时&#xff0c;没有正确使用 if __name__ __main__: 语句块造成的。在 Windows 里&#xff0c;多进程的启动方式是 spawn&#xff0c;并非 fork&#xff0c;所以必须在主模块中使用 if __name__ __main__: 语句块来避免子进程重复执行…...

游戏引擎学习第228天

对上次的内容进行回顾&#xff0c;并为今天的开发环节做铺垫。 目前大部分功能我们已经完成了&#xff0c;唯一剩下的是一个我们知道存在但目前不会实际触发的 bug。这个 bug 的本质是在某些线程仍然访问一个已经被销毁的游戏模式&#xff08;mode&#xff09;之后的状态&…...

Pytorch Hook 技巧

通过 functools.partial 扩展 Pytorch Hook 机制 阅读 atom 文章源码时学习到的技巧&#xff0c;mark一下 通过 functools.partial&#xff0c;开发者无需修改原始函数或 PyTorch 的 Hook 机制&#xff0c;即可实现​​参数扩展与接口适配​​&#xff0c;这是 Python 函数式编…...

Python multiprocessing模块介绍

multiprocessing 是 Python 标准库中的一个模块&#xff0c;用于实现多进程并行计算&#xff0c;可以在多核 CPU 上显著提升程序性能&#xff0c;尤其适用于 CPU 密集型任务。Python 的多线程由于 GIL&#xff08;全局解释器锁&#xff09;限制&#xff0c;在进行 CPU 密集型任…...

[特殊字符] LoRA微调大模型实践:从MAC到Web的全流程指南

&#x1f680; 实践步骤概览 今天我们要在MAC上完成一个完整的AI项目闭环&#xff1a; 微调一个大模型 → 2. 导出模型并部署 → 3. 暴露API给web后端 → 4. 前端展示 &#x1f6e0;️ 微调模型准备 核心配置 框架&#xff1a;LLama-Factory &#x1f3ed; 算法&#xff1a…...

第二天 通过脚本控制物体移动和旋转

一、Unity脚本编程基础认知 1.1 为什么说脚本是Unity的灵魂&#xff1f; Unity引擎的核心架构采用ECS&#xff08;Entity-Component-System&#xff09;模式&#xff0c;脚本作为组件的具体实现&#xff0c;控制着游戏对象的所有行为。统计显示&#xff0c;一个中等规模的Uni…...