C语言经典笔试题目分析(持续更新)
1. 描述下面代码中两个static 各自的含义
static void func (void)
{static unsigned int i;
}
- static void func(void) 中的 static
作用对象:函数 func。
含义:
限制函数的作用域(链接属性),使其仅在当前源文件(.c 文件)内可见,其他源文件无法调用此函数。
未加 static 的函数默认为 extern(外部链接),其他文件可以通过声明调用;而 static 函数是“内部链接”的,仅用于文件内封装。
- static unsigned int i; 中的 static
作用对象:局部变量 i。
含义:
延长变量的生命周期,使其从“自动存储期”变为“静态存储期”。
未加 static 的局部变量会在函数调用结束后销毁,而 static 变量会一直存在,直到程序结束。
特性:
变量 i 的作用域仍限制在函数 func 内部(只能在函数内访问)。
变量 i 的值会保留,每次调用 func 时,i 的值是上一次调用结束后的值。
变量 i 在程序启动时初始化为 0(若未显式初始化)。
总结
static 位置 | 作用对象 | 核心意义 | 影响范围 |
---|---|---|---|
static void func(void) | 函数 | 限制函数的作用域(内部链接) | 文件级可见性 |
static unsigned int i; | 局部变量 | 延长变量的生命周期(静态存储期) | 变量的存储与持久化 |
2. 写出执行下面代码后变量a的值:
unsigned int a,b=3;
void move(unsigned int *p,unsigned int val)
{P = &val;
}void main (void)
{a = b++;move(&a,b);
}
-
全局变量a和b的声明。b初始化为3,a未初始化,但因为是全局变量,默认初始化为0吗?或者可能在C语言中全局变量默认初始化为0?我记得是的,但这里a被显式赋值了,所以可能不需要考虑初始值。
-
主函数main开始执行。首先执行a = b++。这里的b++是后置递增,即先赋值b的当前值给a,然后b自增1。所以执行完这一步后,a应该是3,而b变成4。
-
接着调用move函数,传入&a(a的地址)和b的值(此时b是4)。在move函数内部,参数p接收的是a的地址,val接收的是4。然后在函数内部,执行p = &val。这里需要注意的是,p是一个指针变量,传递的是指针的副本。也就是说,在函数内部,p被改为指向val的地址,但这个改变不会影响到函数外部的指针,因为C语言是值传递,函数内部修改的是指针的副本,而不是原来的指针。
因此,move函数执行后,并没有改变a的值,因为函数内部只是修改了局部指针p的指向,而没有通过指针去修改a的值。所以a仍然保持原来的值,也就是3。
不过,这里可能存在一个误解:在函数move中,p被赋值为val的地址。但是val是一个局部变量,当函数move结束后,val的地址就不再有效了。即使通过p修改了指向的内容,但由于val已经不存在了,这可能导致未定义行为。不过在这个代码中,并没有通过*p来修改val的值,只是改变了p的指向。因此,实际上move函数并没有对a进行任何修改,所以a的值仍然保持为3。
3. 在32位的单片机系统中,下面的结构体长度是多少?
typedef struct {
short a;
char b;
char c;
int d;
}struct1;typedef struct {
char a;
short b;
unsigned char c;
int d;
}struct2;
分析如下:
在 32 位单片机系统 中,结构体的长度由成员变量的内存对齐规则决定。以下是具体分析:
typedef struct {short a; // 2 字节(对齐到 2 的倍数地址)char b; // 1 字节(对齐到 1 的倍数地址)char c; // 1 字节(对齐到 1 的倍数地址)int d; // 4 字节(对齐到 4 的倍数地址)
} struct1;
内存布局分析:
short a:占 2 字节(地址 0-1)。
char b:占 1 字节(地址 2)。
char c:占 1 字节(地址 3)。
int d:需对齐到 4 的倍数地址。当前地址为 4(跳过 0-3),占 4-7 字节。
总长度:8 字节(无需额外填充,已满足最大对齐值 4 的倍数)。
typedef struct {char a; // 1 字节(对齐到 1 的倍数地址)short b; // 2 字节(对齐到 2 的倍数地址)unsigned char c; // 1 字节(对齐到 1 的倍数地址)int d; // 4 字节(对齐到 4 的倍数地址)
} struct2;
内存布局分析:
char a:占 1 字节(地址 0)。
short b:需对齐到 2 的倍数地址。当前地址为 1,填充 1 字节到地址 2,占 2-3 字节。
unsigned char c:占 1 字节(地址 4)。
int d:需对齐到 4 的倍数地址。当前地址为 5,填充 3 字节到地址 8,占 8-11 字节。
总长度:12 字节(满足最大对齐值 4 的倍数)。
最终结果
结构体 | 总长度(字节) | 关键对齐分析 |
---|---|---|
struct1 | 8 | 成员顺序紧凑,填充较少。 |
struct2 | 12 | 因 short 和 int 对齐导致多次填充。 |
4.请使用 typedef定义一个数据类型 func_t为指向 void 型函数的函数指针,再使用此数据类型定义一个指向 void 型函数的函数指针,并通过此指针来调用函数 test。
typedef int (*fun_ptr)(int,int);
// 声明一个指向同样参数、返回值为int的函数指针类型
typedef_______
void test(void);
void main()
{
}
代码实现:
#include <stdio.h>// 使用 typedef 定义函数指针类型 func_t
typedef void (*func_t)(void);// 定义目标函数 test
void test(void) {printf("Test function called.\n");
}int main() {// 声明 func_t 类型的函数指针并指向 testfunc_t func_ptr = test; // 等价于 func_ptr = &test// 通过函数指针调用 testfunc_ptr(); // 等价于 (*func_ptr)();return 0;
}
5.请编写宏定义实现以下功能:
1)将无符号整数a的第1位置1,同时保证其它位的值不改变;
2)将无符号整数b的第5位清0,同时保证其它位的值不改变;
3)计算出任意结构体类型的常数组(如struct tt tab[]
)的元素个数
#include <stdio.h>// 宏定义
#define SET_BIT1(a) ((a) |= (1U << 1)) // 第 1 位置 1
#define CLEAR_BIT5(b) ((b) &= ~(1U << 5)) // 第 5 位清 0
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) // 计算数组元素个数int main() {// 测试置位和清零unsigned int a = 0;SET_BIT1(a);printf("a = 0x%08X\n", a); // 输出 0x00000002unsigned int b = 0xFFFFFFFF;CLEAR_BIT5(b);printf("b = 0x%08X\n", b); // 输出 0xFFFFFFDF// 测试数组元素个数计算struct tt { int x; char y; };struct tt tab[] = { {1, 'a'}, {2, 'b'}, {3, 'c'} };printf("Array size: %zu\n", ARRAY_SIZE(tab)); // 输出 3return 0;
}
1U << 1
:生成掩码 0b00000010(假设为 8 位)。
注意事项
-
位操作宏:
-
1U 确保掩码为无符号整数,避免符号扩展问题。
-
括号包裹参数 (a) 和 (b),防止宏展开时的运算符优先级错误。
-
-
数组大小宏:
-
仅适用于静态数组,若传入指针(如函数参数退化的指针),宏会失效。
-
arr 必须为数组名,不能是指针或动态分配的内存。
-
6.请按照说明实现下面的函数:
/*功能:把十六进制数转换为字符,如0xA8转换为字母A和数字8
*参数:hex是待转换的十六进制数:char1和char2是转换后的字符的存储指针
*返回值:返回0表示转换成功,返回-1表示参数错误或转换失败*/
int hex_to_chars(unsigned char hex,char *charl, char *char2)
{
}
实现:
#include <stdio.h>int hex_to_char(unsigned char hex, char *char1, char *char2) {// 检查指针有效性if (char1 == NULL || char2 == NULL) {return -1;}// 检查hex是否为有效单字节十六进制数(0x00~0xFF)if (hex > 0xFF) {return -1;}// 处理高四位unsigned char high = (hex >> 4) & 0x0F;// 处理低四位unsigned char low = hex & 0x0F;// 转换为字符*char1 = (high < 10) ? ('0' + high) : ('A' + high - 10);*char2 = (low < 10) ? ('0' + low) : ('A' + low - 10);return 0;
}/* 使用示例 */
int main() {char c1, c2;unsigned char test_num = 0xA8;if (hex_to_char(test_num, &c1, &c2) == 0) {printf("0x%02X -> '%c' '%c'\n", test_num, c1, c2); // 输出:0xA8 -> 'A' '8'}// 错误测试:传入空指针if (hex_to_char(0x12, NULL, &c2) == -1) {printf("Invalid parameters!\n");}return 0;
}
代码说明:
-
参数校验
-
首先检查char1和char2是否为NULL,避免空指针解引用。
-
检查hex是否超过单字节范围(0x00~0xFF),若超过则返回错误。
-
-
位操作提取高低四位
-
high = (hex >> 4) & 0x0F:右移4位获取高四位并屏蔽其他位。
-
low = hex & 0x0F:直接屏蔽高四位获取低四位。
-
-
数值转字符
-
0-9:直接转换为字符’0’-‘9’(‘0’ + value)。
-
10-15:转换为大写字母’A’-‘F’(‘A’ + value - 10)。
-
-
返回值
- 成功返回0,失败返回-1(参数错误或数值越界)。
相关文章:
C语言经典笔试题目分析(持续更新)
1. 描述下面代码中两个static 各自的含义 static void func (void) {static unsigned int i; }static void func(void) 中的 static 作用对象:函数 func。 含义: 限制函数的作用域(链接属性),使其仅在当前源文件&…...
射击游戏demo11
完善地图,加载出装饰品,检测人员与地面的碰撞,检测子弹与岩壁的碰撞,检测手雷与地面的碰撞。 import pygame import sys import os import random import csv # 初始化Pygame pygame.init()# 屏幕宽度 SCREEN_WIDTH 1200 # 屏幕高…...
多智能体Multi-Agent应用实战与原理分析
一:Agent 与传统工具调用的对比 在当今的开发环境中,Agent 的出现极大地简化了工作流程。其底层主要基于提示词、模型和工具。用户只需向 Agent 输入需求,Agent 便会自动分析需求,并利用工具获取最终答案。而传统方式下,若没有 Agent,我们则需要手动编码来执行工具,还要…...
专项智能练习(定义判断)_DA_01
1. 单选题 热传导是介质内无宏观运动时的传热现象,其在固体、液体和气体中均可发生。但严格而言,只有在固体中才是纯粹的热传导,在流体(泛指液体和气体)中又是另外一种情况,流体即使处于静止状态࿰…...
关于NLP自然语言处理的简单总结
参考: 什么是自然语言处理?看这篇文章就够了! - 知乎 (zhihu.com) 所谓自然语言理解,就是研究如何让机器能够理解我们人类的语言并给出一些回应。 自然语言处理(Natural Language Processing,NLP࿰…...
SLAM定位与地图构建
SLAM介绍 SLAM全称Simultaneous Localization And Mapping,中文名称同时定位与地图构建。旨在让移动设备在未知环境中同时完成以下两个任务(定位需要地图,而建图又依赖定位信息,两者互为依赖): 定位&#…...
REST架构风格介绍
一.REST(表述性状态转移) 1.定义 REST(Representational State Transfer)是由 Roy Fielding 在 2000 年提出的一种软件架构风格,用于设计网络应用的通信模式。它基于 HTTP 协议,强调通过统一的接口&#…...
前端流行框架Vue3教程:16. 组件事件配合`v-model`使用
组件事件配合v-model使用 如果是用户输入,我们希望在获取数据的同时发送数据配合v-model 来使用,帮助理解组件间的通信和数据绑定。 🧩 第一步:创建子组件(SearchComponent.vue) 这个组件用于处理用户的搜…...
5月15日day26打卡
函数专题1 知识点回顾: 函数的定义变量作用域:局部变量和全局变量函数的参数类型:位置参数、默认参数、不定参数传递参数的手段:关键词参数传递参数的顺序:同时出现三种参数类型时 作业: 题目1:…...
Java中的深拷贝与浅拷贝
什么是拷贝 在Java中,拷贝是指创建一个对象的副本。拷贝主要分为两种类型:浅拷贝(Shallow Copy)和深拷贝(Deep Copy)。理解这两种拷贝的区别对于编写正确的Java程序非常重要,特别是在处理对象引用时。 浅拷贝(Shallow Copy) 浅拷贝是指创建…...
springboot AOP中,通过解析SpEL 表达式动态获取参数值
切面注解 import com.bn.document.constants.FmDeptCatalogueConstants;import java.lang.annotation.*;Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface FmDeptCatalogueAopAnnotation {/*** 权限类型*/FmDeptCatalogueConstants value();/…...
【论信息系统项目的合同管理】
论信息系统项目的合同管理 论文要求写作要点正文前言一、合同的签订管理二、合同履行管理三、合同变更管理四、合同档案管理五、合同违约索赔管理结语 论文要求 项目合同管理通过对项目合同的全生命周期进行管理,来回避和减轻可识别的项目风险。 请以“论信息系统项…...
redis持久化方式
一、RDB redis database:快照,某一时刻将内存中的数据,写入磁盘中生成1个dump.rdb文件RDB的触发方式: 手动触发:save(阻塞主进程,阻塞其它指令,保证数据一致性)、bgsave…...
free void* 指令
https://stackoverflow.com/questions/2182103/is-it-ok-to-free-void free(ptr) 仅释放指针指向的内存,不会修改指针变量本身的值。调用后,ptr 仍然指向原来的地址(称为 "悬空指针"),但该地址对应的内存已…...
ADS1220高精度ADC(TI)——应用 源码
文章目录 德州仪器ADS1220概述资料引脚&封装布线寄存器配置寄存器0(00h)配置寄存器1(01h)配置寄存器2(02h)配置寄存器3(03h) 连续转换流程驱动源码ads1220.cads1220.h 德州仪器A…...
mysql-Java手写分布式事物提交流程
准备 innodb存储引擎开启支持分布式事务 set global innodb_support_axon分布式的流程 详细流程: XA START ‘a’; 作用:开始一个新的XA事务,并分配一个唯一的事务ID ‘a’。 说明:在这个命令之后,所有后续的SQL操…...
红黑树:数据世界的平衡守护者
在 C 算法的神秘森林里,红黑树是一棵充满智慧的 “魔法树”。它既不像普通二叉搜索树那样容易失衡,也不像 AVL 树对平衡要求那么苛刻。作为 C 算法小白,今天就和大家一起深入探索红黑树的奥秘,看看它是如何成为数据世界的平衡守护…...
哈夫曼树完全解析:从原理到应用
目录 一、核心概念 二、构造全流程解析 三、编码生成机制 四、C语言实现关键代码 五、核心特性深度解读 六、现代应用场景 七、压缩实战演示 一、核心概念 哈夫曼树(最优二叉树)是带权路径长度(WPL)最短的树形结构&#x…...
如何在 Windows 命令提示符中创建多个文件夹和多个文件
如何在 Windows 命令提示符中创建多个文件夹和多个文件 虽然大多数用户习惯使用 Windows 图形界面来创建文件夹,但如果你需要一次性创建多个文件夹或文件,如同在类Unix系统中可以使用mkdir和touch命令一样,windows下也有创建目录和文件的对应…...
【Java】Spring的声明事务在多线程场景中失效问题。
大家都知道Spring的声明式事务在多线程当中会失效,来看一下如下案例。 按照如下方式,b()方法抛出异常,由于父子线程导致事务失效,a()会成功插入,但是b()不会。 因此成功插入一条数据,事务失效。 Component public class UserServ…...
多平台图标设计与管理的终极解决方案
IconWorkshop Pro 是一款由Axialis团队开发的专业图标设计与制作软件,专注于为设计师、开发者及企业用户提供高效且灵活的图标创作解决方案。该软件凭借其强大的功能与跨平台适配性,成为Windows、macOS、iOS、Android等多系统图标设计的首选工具之一。 …...
【搭建Node-RED + MQTT Broker实现AI大模型交互】
搭建Node-RED MQTT Broker实现AI大模型交互 搭建Node-RED MQTT Broker实现AI大模型交互一、系统架构二、环境准备与安装1. 安装Node.js2. 安装Mosquitto MQTT Broker3. 配置Mosquitto4. 安装Node-RED5. 配置Node-RED监听所有网络接口6. 启动Node-RED 三、Node-RED流程配置1. …...
小结: js 在浏览器执行原理
浏览器多进程与多线程 现代浏览器的标签环境隔离主要通过多进程架构和多线程机制实现,以确保安全、性能和稳定性。以下是浏览器实现标签环境隔离的多进程和多线程交互架构的详细解析: ------------------- ------------------- -----------…...
C++核心编程--2 引用
引用就是给变量起别名,操作引用就等于操作原始变量。 2.1 引用基本用法 int var 10; int & r_var var; 2.2 注意事项 声明时必须初始化不允许更改引用指向的原始变量 2.3 引用作为函数参数传递 简化指针修饰函数参数 2.4 引用作为函数返回值 不要返回…...
音频/AI/BLE/WIFI/玩具/商业等方向的论坛网站总结
我爱音频网 我爱音频网 - 我们只谈音频,丰富的TWS真无线蓝牙耳机拆解报告 (52audio.com) 中国人工智能学会 中国人工智能学会 (caai.cn) AIIA人工智能网 https://www.aiiaw.com/ 世界人工智能论坛 世界人工智能论坛 - (amtbbs.org) 36氪 36氪_让一部分人先…...
告别碎片化!MCP 带来 AI Agent 开发生态的革命性突破
引言: 在当今的智能客服系统开发中,开发者常常面临一个棘手的挑战:需要整合用户的 CRM 数据、知识库和实时聊天记录。然而,由于缺乏统一的标准,每个团队都不得不手动实现这些集成。这不仅延长了开发周期,还…...
centos7部署mysql5.7
1.下载mysql的官方yum源 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm2.安装yum源 yum -y install mysql57-community-release-el7-11.noarch.rpm3.安装秘钥文件 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-20224.安装mysql5.7…...
linux dbus
Linux D-Bus(Desktop Bus)是一种进程间通信(IPC)机制,主要用于Linux桌面环境和系统服务之间的消息传递。它允许不同的应用程序或系统组件以高效、安全的方式相互通信,是现代Linux桌面(如GNOME、KDE)的核心基础设施之一。 1. D-Bus 的核心概念 消息总线(Message Bus):…...
计量——异方差的检验及其修正
目录 1.异方差的检验 1 BP检验 2white检验 2.异方差的修正 1.异方差的检验 1 BP检验 选择检验方法:BP BP检验的实际步骤(非机器): 1.y对所有x进行回归,得到残差u。计算残差的平方u^2 2.u^2对所有x进行回归&#…...
操作系统学习笔记第3章 内存管理(灰灰题库)
1. 单选题 某页式存储管理系统中,主存为 128KB,分成 32 块,块号为 0、1、2、3、…、31。某作业有 5 块,其页号为 0、1、2、3、4,被分别装入主存的 3、8、4、6、9 块中。有一逻辑地址为 [3, 70](其中方括号中…...
vue3项目中使用CanvasEditor开箱即用(组件的形式,组件封装好了)
canvas-editor-vue 这是canvas-editor项目的vue版本,我封装成组建了,当然了这是个已经把canvas-editor封装好的的Vue项目 项目地址GitHub地址:GitHub - aini-aini/canvas-editor-vue: this is a project than can be used in vue project as Componentthis is a project than…...
人体肢体工作识别-一步几个脚印从头设计数字生命——仙盟创梦IDE
人体肢体识别是借助计算机视觉、传感器等技术,对人体各肢体的位置、动作、姿态等进行检测与分析的技术。其在医疗健康、智能交互、运动训练、安全监控等多个领域具有重要价值, 示例代码 import cv2 import mediapipe as mp import numpy as np import c…...
【重磅】配电网智能软开关和储能联合规划
目录 1 主要内容 目标函数 数据说明 节点系统图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现《具有源荷不平衡特性的配电网智能软开关和储能联合规划》部分模型,未考虑聚类分析和分布鲁棒部分,就智能软开关和储能联合规划部分进行了…...
实验6 电子邮件
实验6 电子邮件 1、实验目的 理解电子邮件系统基本结构 理解客户端和服务器端,以及服务器之间的通信 分析理解SMTP,POP3协议 2、实验环境 硬件要求:阿里云云主机ECS 一台。 软件要求:Linux/ Windows 操作系统 3、实验内容…...
NHANES指标推荐:OBS
文章题目:Association between oxidative balance score and all-cause and cancer-specific mortality among cancer survivors DOI:10.3389/fimmu.2025.1541675 中文标题:癌症幸存者氧化平衡评分与全因死亡率和癌症特异性死亡率之间的关联 …...
python-修改图片背景色
在Python中,可以使用图像处理库(如OpenCV或Pillow)来修改图片的背景色。通常,修改背景色的流程包括以下步骤: 1、对图片进行分割,识别前景和背景。 2、对背景区域进行颜色替换。 下面是两种实现方法&#x…...
数据结构与算法--顺序表--单链表
一 顺序表 需要指向存储位置的基地址分配一段连续的内存用length记录实际的元素的个数,也即顺序表的长度,因为顺序表是允许删除和插入元素的不需要定义数组 1.1 普通结构体数组实现版本,实现白色的点以一定的步长移除画面,大量fo…...
MATLAB安装全攻略:常见问题与解决方案
MATLAB安装常见问题与解决方案 一、系统兼容性验证 安装前需确认操作系统满足MATLAB版本要求: Windows 10版本1903及以上(64位)macOS Monterey 12.6及以上Ubuntu 22.04 LTS及以上 验证命令示例: # Linux系统验证 lsb_release…...
constexpr 关键字的意义(入门)
author: hjjdebug date: 2025年 05月 15日 星期四 16:03:33 CST description: constexpr 关键字的意义(入门) constexpr 是c11 引入的一个关键字, 代表了一种属性. 文章目录 1. constexpr 修饰的变量, 在编译期间就可以得到其数值.2. constexpr 修饰的函数, 可以在编译期间被调…...
aptitude 深度教程:从基础到生产实践
目录 一、aptitude 基础:核心概念与环境准备 1.1 aptitude 是什么? 1.2 安装与环境配置 二、aptitude 核心操作:从命令行到交互式界面 2.1 命令行基础操作 2.2 交互式界面(TUI)入门 三、高级功能:依赖管理与版本控制 3.1 依赖冲突解决实战 3.2 版本锁定与降级 3…...
嵌入式开发学习日志(数据结构--双链表)Day21
一、双链表 1.定义 双向链表是在单链表的每个结点中,再设置一个指向其钱去节点的指针域。 2、声明文件 3、创建表头 4、头插 5、 遍历 6、尾插、 7、指定插 8、查找 9、修改 10.、删除 11、逆序 12、销毁链表 13、main.c 三、扩展:工程管理工具&#…...
抢购Python代码示例与技术解析
引言:抢购系统的技术挑战 在当今电子商务高度发达的时代,抢购活动已成为各大电商平台吸引用户的重要手段。然而,高并发、低延迟的抢购场景对系统设计提出了严峻挑战。本文将提供一个完整的Python抢购代码示例,并深入分析其技术实…...
undefined reference to CPUAllocatorSingleton::instance
它发生的原因是你声明了 CPUAllocatorSingleton 类中的 instance 变量,但没有提供它的定义。 这个错误是链接器无法找到 CPUAllocatorSingleton::instance 的定义。它发生的原因是你声明了 CPUAllocatorSingleton 类中的 instance 变量,但没有提供它的定…...
【c语言】动态内存分配
文章标题 一、为什么要进行动态内存管理二、malloc和free2.1. malloc2.2. free2.3. 举例 三、calloc和realloc3.1. calloc3.2. realloc 四、常见的动态内存错误4.1. 对NULL指针的解引用操作4.2. 对动态开辟空间的越界访问4.3. 对非动态开辟内存使用free释放4.4. 使用free释放⼀…...
深入理解JavaScript中的闭包:原理、应用与常见问题
引言 闭包(Closure)是JavaScript中一个既强大又容易让人困惑的概念。理解闭包对于成为一名优秀的JavaScript开发者至关重要。本文将深入探讨闭包的工作原理、实际应用场景以及常见问题,帮助你彻底掌握这一重要概念。 什么是闭包? 闭包是指那些能够访问…...
IPLOOK | 2025 MVNOs 世界大会:从Wi-Fi通话到卫星覆盖
2025 MVNOs 世界大会于5月12日至14日在奥地利维也纳举行,汇聚了来自50多个国家的550余位行业领袖,共同探讨移动虚拟网络运营商(MVNO)领域的变革趋势。本届大会聚焦数字化转型、技术创新与战略合作,其中IPLOOK凭借其创新…...
为什么elasticsearch配置文件JVM配置31G最佳
Elasticsearch的JVM堆内存配置为32GB被视为最佳实践,主要基于以下综合技术原理和性能优化考量: 1. JVM指针压缩机制优化内存效率 当堆内存≤32GB时,JVM启用对象指针压缩(Compressed Ordinary Object Pointers, COOP&#…...
单片机开发软件
目录 纯编码 vscode Ardunio Keil 1. 集成化开发环境(IDE) 2. 多架构芯片支持 3. 高效的代码生成与优化 4. 强大的调试与仿真功能 5. 丰富的库函数与生态系统 6. 教育与企业级适用性 典型应用场景 半编码半图形化 STM32CUBEIED 1. 图形化配置…...
Java随机生成邀请码 (包含字母大小写+数字)
前言: 目前我们生成的是6位包含数字和大小写字母的随机邀请码, 并且代码中已经有了处理冲突的机制确保了邀请码的唯一性如(①生成随机邀请码后会检查数据库中是否已存在②如果存在冲突,会尝试最多10次重新生成③如果多次尝试仍失败,会使用"U"用户ID派生的…...
mybatis-plus配置逻辑删除
在实体类中标记软删除字段使用注解 TableLogic 标记该字段为软删除字段 import com.baomidou.mybatisplus.annotation.*;public class YourEntity {// ...其他字段TableLogicprivate Integer isDeleted;// getter/setter }yml配置 # 逻辑已删除值 logicDeleteValue: 2 # 逻辑…...