- 博客(48)
- 收藏
- 关注
原创 NAT模式下VMware的虚拟机DNS解析失败的问题解决
我看到的127.0.0.53是本地DNS存根,真正生效的是的上游DNS配置;优先通过查看上游DNS状态,用临时验证DNS有效性;永久配置需修改并重启对应服务;若仍失效,排查主机端VMwareVMnet8的NAT/DHCP DNS配置,确保DHCP能分配有效公网DNS。
2025-12-23 15:11:34
911
原创 一文搞懂左外连接右外连接与内连接
连接类型核心规则匹配记录不匹配记录处理典型场景内连接(INNER JOIN)只保留匹配记录两表关联字段完全匹配两侧不匹配记录均过滤查询有部门的员工、有员工的部门左外连接(LEFT JOIN)保留左表所有记录两表匹配记录左表不匹配记录保留,右表对应字段为NULL查询所有员工(含无部门者)、所有客户(含无订单者)右外连接(RIGHT JOIN)保留右表所有记录两表匹配记录右表不匹配记录保留,左表对应字段为NULL查询所有部门(含无员工者)、所有课程(含无人选者)
2025-11-19 01:21:21
756
原创 [GO]gin框架:ShouldBindJSON与其他常见绑定方法
是Gin框架为类型提供的方法,专门用于JSON格式请求体的绑定,是Web开发中接收JSON参数的“标配工具”。
2025-10-18 16:14:03
796
原创 [GO]Go语言包访问控制与导入机制
/ package声明必须与同目录下其他文件一致// 首字母小写:同包内可访问var internalVar = "我是mypkg内部变量"// 首字母小写:同包内可调用println("a.go中的辅助函数")访问场景是否允许访问控制方式同一包内不同文件✅ 允许访问所有标识符无权限限制,无需导入不同包之间❌ 禁止访问未导出标识符未导出标识符首字母小写不同包之间✅ 允许访问导出标识符1. 用import导入目标包;2. 导出标识符首字母大写导入路径。
2025-10-18 16:07:45
867
原创 [GO]GORM 常用 Tag 速查手册
本手册按「功能场景」分类,整理 GORM 开发中高频使用的 Tag,包含,方便快速查阅与实操参考(默认数据库环境为 MySQL)。
2025-10-18 15:46:54
874
原创 [GO]GORM中的Tag映射规则
column优先用默认规则:蛇形命名是数据库的通用规范,非必要不自定义列名,减少认知成本。索引要合理:高频查询字段(如statususer_id)加普通索引,唯一值字段(如email)加唯一索引,避免过度索引影响写入性能。软删除必加索引DeletedAt字段一定要加索引(),否则软删除查询会全表扫描。显式指定字段类型:Go 的string类型默认映射为,如果明确知道长度(如用户名最多50字符),建议显式写,避免浪费空间。调试靠日志:不确定映射是否正确时,开启日志看 SQL,比猜更高效。
2025-10-18 15:45:14
835
原创 [GO]什么是热重载,如何使用Air工具
热重载(Hot Reloading)是一种开发期技术,它能在应用不停止运行的前提下,监听源代码文件的修改,自动编译变更部分,并将更新“注入”到运行中的应用,最终让开发者实时看到修改效果——整个过程无需手动重启应用,甚至能保留应用当前状态(如表单输入、组件交互状态)。简单说:“改代码 → 保存 → 效果秒更”,中间没有任何手动操作。Air支持“零配置启动”(直接在项目根目录执行air),但默认配置可能不适合你的项目(如监听的文件类型、编译命令)。建议生成自定义配置文件.air.toml,按需调整。
2025-10-13 23:59:24
1049
原创 [GO]Go语言泛型详解
/ 1. 定义约束:数字类型(Number)且实现String()方法Number // 嵌入之前定义的Number约束String() string // 要求实现String()方法// 2. 自定义数字类型,实现String()// 3. 泛型函数:仅支持NumericStringer类型fmt.Printf("值:%s,和为:%v\n", t.String(), t+10) // 可调用String()和+// 使用示例。
2025-10-13 23:49:16
679
原创 [GO]golang接口入门:从一个简单示例看懂接口的多态与实现
Phone接口定义:用type 接口名 interface {}声明,包含方法集合。实现规则:非侵入式,结构体实现所有方法即自动属于该接口。核心能力:通过接口变量实现多态,动态绑定具体实现的方法。实际价值:解耦代码、便于扩展,是Go“面向接口编程”的核心。对于初学者,建议从“模仿示例”开始:先定义一个简单接口,用不同结构体实现它,再通过接口变量调用方法,感受多态的效果。后续在实际开发中,逐渐学会用接口拆分模块、降低耦合,就能真正掌握Go接口的精髓。
2025-10-13 23:42:10
821
原创 [GO]一文理清Go语言依赖管理:从go get到Go Modules,避坑指南
首选模式:Go 1.16+ 默认启用Go Modules,所有新项目都应通过go mod init <模块名>初始化,告别GOPATH。依赖存放Go Modules模式下,源码存于,项目目录仅需保留go.modgo.sum,无需包含依赖源码。核心命令:初始化项目,生成go.mod;:自动同步依赖(添加缺失、删除无用);go get <包名>@<版本>:管理项目依赖版本;go install <工具名>@<版本>:安装全局命令行工具。避坑提醒不要把go get下载的源码和GOPATH/bin。
2025-10-13 23:36:31
694
原创 网络编程(十五)http请求
HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的应用层协议,它定义了客户端和服务器之间进行通信的数据组织格式。核心特征:一个请求,一个响应HTTP协议基于"请求-响应"模型:客户端向服务器发送HTTP请求服务器处理请求后返回HTTP响应每次通信都是独立的,服务器不会保持客户端的状态信息HTTP协议作为Web通信的基石,其请求-响应模型简单而有效。GET和POST作为最常用的两种方法,各有其适用场景:GET适合获取资源,POST适合提交数据。
2025-10-09 23:44:04
537
原创 C++网络编程(十四)代码示例---epoll的边缘模式+非阻塞IO
【代码】C++网络编程(十四)代码示例---epoll的边缘模式+非阻塞IO。
2025-10-09 23:02:29
192
原创 C++网络编程(十三)epoll如何设置边缘模式
边沿模式在epoll中提供了高性能,但要求应用程序正确处理数据读取。通过设置文件描述符为非阻塞,并结合循环读取,可以克服边沿模式的弊端。实践时,总是检查read的返回值,处理EAGAIN情况,以确保服务器稳定运行。这种模式常见于高并发服务器设计,如Web服务器或实时系统。
2025-10-09 23:00:54
805
原创 网络编程(十二)epoll的两种模式
epoll是Linux内核提供的一种I/O多路复用机制,用于监控多个文件描述符(fd)的状态变化。它比传统的select和poll更高效,尤其是在处理大量连接时。epoll的核心在于其工作模式的选择,这直接影响程序的性能和可靠性。
2025-10-09 22:57:29
440
原创 C++网络编程(十)epoll模型与select的区别
:epoll在Linux环境下性能最优,适合高并发应用;select虽跨平台但连接数受限;poll是epoll的前身,效率不如epoll。在选择时,应根据平台和并发需求决定。
2025-10-08 18:02:09
938
原创 C++网络编程(九)select模型(含服务端代码示例)
Select 模型的主要优点包括跨平台支持和简单性,但它也有局限性:线性扫描效率低:当文件描述符数量很大时(如成千上万),内核的线性遍历会成为性能瓶颈,因为时间复杂度为 O(n)。集合大小限制:文件描述符集合有固定大小(通常由 FD_SETSIZE 定义),可能限制可监控的描述符数量。重复初始化:由于集合是传入传出参数,每次调用 Select 前都需要重新初始化集合,增加了编程复杂度。
2025-10-08 17:58:11
602
原创 C++网络编程(八)---IO多路转接
IO多路转接技术主要用于解决高并发场景下传统多线程/多进程模型的资源消耗问题。其核心原理是,通过内核统一监控多个文件描述符的状态变化,再通知应用程序进行针对性处理。
2025-10-08 17:54:56
212
原创 C++网络编程(六)代码示例---简单的多进程并发服务器
在服务器开发中,处理多个客户端连接是一个常见需求。多进程模型是一种经典的并发处理方式,它通过创建子进程来分担任务,提高服务器的吞吐量和响应能力。本文将基于技术笔记,详细解析多进程服务器的核心概念和实现细节,帮助您理解其工作原理。
2025-10-08 17:48:56
249
原创 C++网络编程(五)socket编程---从socket()到connect()
这些核心API构成了网络编程的基础,理解每个函数的作用和参数含义是编写稳定网络应用程序的关键。在实际开发中,还需要注意错误处理、非阻塞IO、多路复用等高级特性,以构建高性能的网络应用。
2025-10-07 22:44:14
963
原创 C++网络编程(四)文件描述符
文件描述符是操作系统中的一个重要概念,尤其在网络编程中扮演着关键角色。它本质上是一个整数标识符,用于代表打开的文件、套接字或其他I/O资源。在服务器应用中,文件描述符常用于处理客户端连接和数据传输。下面我将基于常见的技术细节,简要解释文件描述符的核心机制,包括监听和通信部分,以及内核中的缓冲区管理。
2025-10-07 22:38:11
450
原创 C++网络编程(三)TCP通信流程
TCP通信是一个典型的客户端-服务器模型,通过三次握手建立可靠连接,在通信过程中保证数据的完整性和有序性,最后通过四次挥手优雅断开连接。理解TCP通信流程对于网络编程至关重要,它是构建稳定网络应用的基础。无论是服务器端还是客户端,都需要遵循创建套接字→建立连接→数据通信→断开连接的基本流程,只是具体实现细节有所不同。掌握这些核心概念和代码实现,将为深入学习网络编程打下坚实基础。
2025-10-07 22:32:59
281
原创 C++网络编程(二)字节序与IP地址转换
BSD Socket提供了专门的字节序转换接口,用于主机字节序与网络字节序之间的转换:htons()- 主机到网络的16位整数转换(用于端口号)htonl()- 主机到网络的32位整数转换(用于IPv4地址)ntohs()- 网络到主机的16位整数转换ntohl()- 网络到主机的32位整数转换。
2025-10-07 22:07:41
348
原创 一段代码搞定c++常见字符类型转换(string,char*,vector<char>)
其实核心思想很简单,string,vector,用构造的方法转换,不过vector可以用迭代器构造,而要转char,使用string/vector里的自带的api即可
2025-09-11 23:23:04
116
原创 32位有符号整数(int)的最大值与最小值
3个二进制位--> 000到111 共能表示8种状态,即0~7 这个8个数。n个二进制位--> 能表示2^n种状态。1个二进制位--> 0或1 2种状态。共31个二进制位,那么一共可以表示出。种状态即是 -1~ -种状态 但最大值不是。因为其中有一种状态表示0。种状态,不过它不用表示0。32位,有1位是符号位。
2025-05-01 11:12:51
857
原创 图书管理系统--基于链表的工程实践
开发环境:vs2022windows11C语言核心思想是:1.写一套链表的增删改查2.通过结构体封装,使得该链表可以存储各种类型的数据3.通过函数封装增删改查的操作,所有操作都对应一个函数关于文件操作:1.函数启动时,将文件导入到内存中2.所有增删改查都只是在内存中操作,并没有永久改变文件,除非执行了保存文件操作3.程序结束时,自动调用保存文件功能,将内存中的数据保存到文件中。
2025-03-03 12:54:29
239
原创 6-7 数据结构考题 - 二叉排序树分数 25作者 陈皓单位 合肥师范学院
下面给出了二叉排序树创建和搜索函数的大部分内容,但缺少了一部分(以下划线____标识出来的部分)。请先将以下代码中画横线的部分补充完整,然后将完整的函数BSTInsertBSTCreateBSTSearch提交系统,完成题目要求的功能。T=s;BSTree s;T=NULL;cin>>x;while (x!cin>>x;if(!elseElemType k要搜索的值顺序表中第一个数据元素存储在T.R[1]
2024-11-17 13:33:07
1100
原创 PTA 3-5 彩虹瓶 作者 陈越 单位 浙江大学 一行一句注释 C++实现
彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。
2024-10-22 21:13:43
619
原创 数据库实验3 头歌实验平台 成都信息工程大学任务描述本关任务:在银行表中插入如下数据:银行代码号为:000001,银行名称为:中国农业银行,电话为空值,贷款总额为0
头歌实验3
2024-10-18 02:05:44
391
原创 数据库实验2 头歌实验平台 成都信息工程大学 任务描述本关任务:查询选修了其它专业的课程的学生选修信息结果集各项数据的别名为:姓名、学号、学生所在专业、课程名、课程所属专业。查询结果按学生所在专
要抄的话最好是完全一样,比如count(*),如果你写成count (*)他就什么也不输出(也就是count语句多打一个空格都不行)
2024-10-10 09:50:09
705
原创 Java PTA 7-2 实验3-2 2.第3-1题中增加两个static 成员 :圆周率和圆对象个数, 增加两个 static 方法,分别是设置圆周率(3.14)和显示当前圆对象个数的, 仔细体会静
2.第3-1题中增加两个static 成员 :圆周率和圆对象个数, 增加两个 static 方法,分别是设置圆周率(3.14)和显示当前圆对象个数的, 仔细体会静态成员与实例成员的使用方法和区别。两个圆半径分别为3和2。
2024-04-16 17:13:56
370
原创 Java PTA 7-1 实验3-1 1.编写一个圆环类 Ring 的 Java 程序。圆环类有 3 个数据成员 , 分别是内半径 innerRadius, 外半径 outerRadius 和颜色 c
1.编写一个圆环类 Ring 的 Java 程序。圆环类有 3 个数据成员 , 分别是内半径 innerRadius, 外半径 outerRadius 和颜色 color, 这些属性可以查看 get 也可以重新设置 set, 另外 , 圆环还可以返回其面积 area。
2024-04-16 17:11:36
699
原创 Java PTA 7-3 实验3-3 设计一个教材类,一个课程类,及一个为某门课程指定参考教材的类。一门课程可以有多本参考教材,再设计一个测试类。
设计一个教材类,一个课程类,及一个为某门课程指定参考教材的类。一门课程可以有多本参考教材,再设计一个测试类。
2024-04-16 17:05:24
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
4