- 博客(202)
- 资源 (1)
- 收藏
- 关注
原创 C Sharp委托、事件、多线程
委托就是这个“遥控器”,它允许你通过一个东西调用多个不同的方法。比如你想写一个程序,让用户点击按钮时执行某些操作,但具体操作可能随时变化。比如你家门铃(事件),别人只能按门铃(触发事件),但不能直接拆掉你的门铃线路(保证安全)。假设你在煮饭(主线程),同时还要切菜(子线程)。委托是功能基础,事件是加了限制的委托(类似public和private的区别)。安全:外部代码只能订阅(+=)或取消订阅(-=),不能直接清空所有绑定。:箭头符号,表示“执行后面的代码”。:代码块,具体要执行的任务。
2025-03-16 14:06:32
514
原创 C Sharp LINQ
Cast 方法将集合中的每个元素转换为指定的类型 T。SelectMany 方法接受一个函数作为参数,该函数定义了如何将集合中的每个元素转换为另一个集合,然后将这些集合合并为一个单一的集合。它返回一个只包含指定类型元素的集合,通常用于处理包含多种类型元素的集合。SkipWhile 方法从集合的开头开始跳过元素,直到条件不满足为止,然后返回剩余的元素。SkipLast 方法用于跳过集合末尾指定数量的元素,并返回剩余的元素。Skip 方法用于跳过集合中指定数量的元素,并返回剩余的元素。
2025-03-16 10:10:26
363
原创 C Sharp 集合
keyword:连续存储、相同类型、快速访问、慢速增删、长度不变、下标访问。keyword:连续存储、不同类型、快速读取、慢速增删、长度可变、索引访问。keyword:没有重复、允许null、无序、线程不安全。ArrayLIst的泛型类,连续存储、长度可变。keyword:先进先出。keyword:先进后出。
2025-03-16 00:35:24
339
原创 spring boot 发送邮件验证码
qq邮箱在–>设置–>账号POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。SimpleMailMessage:分装简单的邮件的Bean。1、复杂邮件有更加丰富的内容,如:图片、链接、附件等。JavaMailSender:发送邮件的客户端。JavaMailSender:发送邮件的客户端。MimeMessage:封装复杂邮件的Bean。setFrom(发件地址)setFrom(发件地址)包含邮件标题、邮件正文。setText(正文)setTo(收件地址)setTo(收件地址)
2025-03-12 14:49:58
1100
原创 MybatisPlus详细使用
我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。需求:将id在指定范围的用户(例如1、2、4)的余额扣减指定值①基于wrapper构建where条件// 更新条件// 构建条件// 自定义sql方法调用②在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew③自定义SQL,并使用wrapper条件</update>
2025-03-02 14:38:53
962
原创 c sharp 特性详解
你可以通过继承 Attribute 类定义自己的特性。get;get;set;} }get;get;set;} }get;get;set;} }get;get;set;} }get;get;set;} }get;get;set;} }get;get;set;} }trueset;[AttributeUsage]:指定特性的作用目标(类、方法等)和规则。
2025-02-22 14:54:17
906
原创 c sharp 泛型详解
在没有泛型时,如果我们想为不同类型(int和string)实现相同的逻辑,可能需要写多个重复的类或方法。例如,一个存储整数的容器和一个存储字符串类型的容器,他们的逻辑相同但类型不同。泛型通过类型参数化解决了这个问题——让你在定义类、方法或接口时使用占位符(比如 T)。泛型允许你在定义类、接口或方法时使用类型参数。泛型方法是可以在方法定义中使用类型参数的普通方法。where T : class → T 必须是引用类型(如 string, 类)为了让泛型更安全,可以限制类型参数 T 的允许范围。
2025-02-22 11:20:58
321
原创 Modbus协议基础
协议分类 modbusRTU协议、modbusASCII协议、modbusRTUOverTCP、modbusRTUOverTCP、modbusASCIIOverTCP、modbusASCIIOverUDP、modbusTCP协议、modbusUDP协议。写入多接收:开始地址、写入数量。读取输入线圈、读取输出线圈、读取输入寄存器、读取输出寄存器、写入输出线圈、写入输入线圈。发送格式:从站地址+功能码+开始寄存器地址+寄存器数量+CRC。发送格式:从站地址+功能码+开始寄存器地址+寄存器数量+CRC。
2025-02-20 17:22:39
1061
原创 上位机学习之串口通信与温湿度项目实战
用来表示不同区域,执行不同的读写操作,读写2种操作,存储区4个,但是输入线圈和输入寄存器只能读取,不能写入,出去这两种,会有6种不同的操作,但是对写入操作又做了两种细分,最后形成了8种具体操作。以西门子PLC为例,I和Q都表示线圈,但是他们的分工是不同的,I表示输入,Q表示输出,输入意味着该存储区里的值必须由外部设备接入,是只读的;2、Modbus是国际标准的串行通信协议,是软件。1、ASCII模式:MG标准信息交换码(0-9,a-z,A-Z),数据中的每8个位的字节都用ASCII码发送。
2025-02-15 11:18:26
680
1
原创 黑马程序员学习之Vue3
vue是Vue项目中的组件文件,在Vue项目中也称为单文件组件(SFC,Single-File Components)。Vue 的单文件组件会将一个组件的逻辑(Js),模板(HTML)和样式(CSS)封装在同一个文件里(*.vue)。ref():接收一个内部值,返回一个响应式的ref对象,此对象只有一个指向内部值的属性 value。onMounted():在组合式API中的钩子方法,注册一个回调函数,在组件挂载完成后执行。在前端工程中,路由指的是根据不同的访问路径,展示不同组件的内容。
2025-01-23 13:34:29
751
原创 黑马程序员学习之Vue3各种功能
生命周期的八个阶段:每个阶段会自动执行一个生命周期方法(钩子),让开发者有机会在特定的阶段执行自己的代码。生命周期的八个阶段:每个阶段会自动执行一个生命周期方法(钩子),让开发者有机会在特定的阶段执行自己的代码。v-show语法:v-show=“表达式”,表达式值为true,显示;作用:动态为HTML标签绑定属性值,如设置href,src,style样式等。作用:动态为HTML标签绑定属性值,如设置href,src,style样式等。v-if语法:v-if=“表达式”,表达式值为true,显示;
2025-01-17 15:17:48
788
原创 黑马程序员学习之Spring Boot3 各种功能
根据要求说明增加校验已有的注解不能满足所有的校验需求,特殊的情况需要自定义校验(自定义校验注解)
2025-01-17 13:46:12
817
原创 spring mvc后端实现过程
这段代码展示了一个 Spring MVC 的控制器 LoginController,继承了 AbstractController,并且通过 ModelAndView 返回模型和视图,属于传统的 Spring MVC 编程风格。通常,接口是用于定义业务逻辑的抽象层,实际的实现类会提供具体的业务实现。LoginVo 可能是一个自定义的类,表示用户登录时提交的数据。每个方法的返回值主要用于表示操作的成功或失败,尤其是增删改查操作中通常会用 int 表示操作结果,而在获取用户信息时返回 LoginVo 对象。
2024-10-16 09:40:44
1083
原创 数据结构(链表)
typedef重命名数据类型第二种声明方式可读性更强LinkList和LNode*的不同用法//定义单链表结点类型int data;//查找单链表中的某一个位置的数int j=1;p=p->next;j++;return p;
2024-01-28 10:21:10
1390
1
原创 Pycharm连接远程服务器遇到的问题
发现无法打开virtualenv-20.24.5.pyz这个文件,其实发现pycharm_helpers里没有这个文件,解决方式就是删除pycharm_helpers这个文件,然后重新下载。似乎PyCharm在远程帮助程序文件夹中创建了一个build.txt文件,该文件仅包含当前的PyCharm内部版本号作为其内容,例如。需要将你pycharm中build.txt,与服务器中root/.pycharm_helpers中build.txt版本号相同。新版pycharm配置。
2024-01-22 13:46:12
2163
原创 Pytorch
要构建Optimizer,您必须给它一个包含要优化的参数(所有参数都应该是变量s)的迭代表。然后,您可以指定优化器特定的选项,如学习率、权重衰减等。增加模型结构为了适应新的数据集CIFAR10,将原本输出类别1000,通过线性输出的类别为10。jupyter notebook终于能运行pytorch环境了呜呜呜。创建一个pytorch环境n后面环境名字,python环境版本。修改模型结构为了适应新的数据集CIFAR10,输出的类别为10。保留数据的特征的同时,需要减少数据总量。
2024-01-17 19:35:30
1401
原创 机械工业品电商平台android
网络请求框架库OkHttpUtils广告轮播Banner图片加载库下拉刷新上拉加载库Json解析库Alibaba开源库vLayout//保持Cookie.build();
2024-01-09 10:01:11
786
1
原创 计算机组成原理实训
(E/M IP = 11): 当 E/M IP 设置为 11 时,可能表示要保持程序计数器(PC)的当前值,即不进行改变,从而执行当前指令的地址。(E/M IP = 00): 当 E/M IP 设置为 00 时,可能表示将某个值加载到程序计数器(PC)中,以指定下一条要执行的指令的地址。MS2 S1 So = 0001 (A-B-C): 该编码可能表示执行减法运算,其中 A 是被减数,B 是减数,C 是借位。: 该编码可能表示禁止目标寄存器的选择,可能是一个控制信号,指示不执行任何目标寄存器的操作。
2023-12-31 17:10:40
1284
原创 Python之文件内容操作
二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处理软件直接进行编辑,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。常见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件。所谓序列化,简单地说就是把内存中的数据在不丢失其类型信息的情况下转成二进制形式的过程,对象序列化后的数据经过正确的反序列化过程应该能够准确无误地恢复为原来的对象。,这样才能保证所做的任何修改都确实被保存到文件中。
2023-12-21 17:01:57
1036
原创 K-means算法实例
标签: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1。随机生成了两个簇,随机选取两个中心点,然后通过k-means算法不断地聚类,等到两个中心的距离小于0.001收敛时,停止聚类。最后的聚类中心:-------》 [[19.70951928 25.17353345]每次的族类中心 [[20.15008182 22.46043598]每次的族类中心 [[19.70951928 25.17353345]
2023-12-21 16:32:58
510
原创 Python之面向对象程序设计
面向对象程序设计的一个关键性观念是将数据以及对数据的操作封装在一起,组成一个相互依存、不可分割的整体,即对象。对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类,面向对象程序设计的关键就是如何合理地定义和组织这些类以及类之间的关系。Python完全采用了面向对象程序设计的思想,是真正面向对象的高级动态编程语言,完全支持面向对象的基本功能,如封装、继承、多态以及对基类方法的重写(覆盖)。类名、实例名和模块名要规范,并在整个系统中保持风格一致。类名一般推荐用大驼峰式命名法(
2023-12-14 22:40:40
1239
原创 卷积神经网络
x假如为20层后的某一层,进行了一次卷积,在进行一次卷积,得到的结果可能不好,所以要额外的连接一条,如果结果不好的话,就把x设置为0,好的就加上,不好的就舍去,取0值。边缘填充(边界的数据利用次数少,内部的数据利用次数多,然而边缘的数据却不一定不重要,所以要将边界填充为0,增加边界利用次数。3的图像,用10个5 * 5 * 3的filter来进行卷积操作,指定步长为1,边界填充为2,最终输入的规模为?在加入的这36层中,把能促进正确率提升的数据加入,把不好的数据抛弃。8层网络,5层卷积,3层全连接。
2023-12-13 15:23:15
1396
原创 Python语言基础知识(三)
内置函数(BIF,built-in functions)是Python内置对象类型之一,不需要额外导入任何模块即可直接使用,这些内置对象都封装在内置模块__builtins__之中,用C语言实现并且进行了大量优化,具有非常快的运行速度,推荐优先使用。当参数为数字字符串时,还允许指定第二个参数base用来说明数字字符串的进制,base的取值应为0或2-36之间的整数,其中0表示按数字字符串隐含的进制进行转换。从sequence中返回一个随机数,其中,sequence参数可以是列表、元组或字符串。
2023-12-12 20:36:43
1116
原创 Python语言基础知识(二)
以“and”为例,对于表达式“表达式1 and 表达式2”而言,如果“表达式1”的值为“False”或其他等价值时,不论“表达式2”的值是什么,整个表达式的值都是“False”,丝毫不受“表达式2”的影响,因此“表达式2”不会被计算。在设计包含多个条件的条件表达式时,如果能够大概预测不同条件失败的概率,并将多个条件根据“and”和“or”运算符的短路求值特性来组织顺序,可以大幅度提高程序运行效率。当条件表达式condition的值与True等价时,表达式的值为value1,否则表达式的值为value2。
2023-12-08 21:50:54
1121
原创 Python语言基础知识(一)
对象是python语言中最基本的概念,在python中处理的一切都是对象。python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表等。非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random( )等。
2023-12-06 17:18:50
1255
原创 AGNES层次聚类
这个过程是自下而上的,即从单个数据点或小的聚类开始,逐步合并形成更大的聚类,直到所有的数据点都被合并成一个大的聚类。已知数据集D中有9个数据点,分别是(1,2),(2,3),(2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。初始簇{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}步骤 3:找到最小距离:找到距离矩阵中最小的距离,合并对应的两个数据点(或聚类)。步骤 2:计算距离矩阵:计算每一对数据点之间的欧几里得距离。
2023-12-03 20:40:33
814
原创 第六章、总线
如上图,4根信号线组成“一根”总线,所有硬件部件都可以通过这根总线传递数据可并行发送4bit数据。同一时刻只能有一个部件发送数据但是可有多个部件接受数据总线是一组能为多个部件分时共享的公共信息传送线路。共享:是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。分时:是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。为什么要用总线?早期计算机外部设备少时大多采用分散连接方式,不易实现随时增减外部设备。
2023-11-27 15:11:59
937
原创 第五章、中央处理器
取指:根据PC内容访问主存储器,取出一条指令送到IR中。分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。设取指、分析、执行3个阶段的时间都相等,用t表示,按以下几种执行方式分析n条指令的执行时间:传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。优点:控制简单,硬件代价小。
2023-11-26 19:29:52
1147
原创 3、LeetCode之无重复字符的最长子串
一个队列"abcabcbb",进入这个队列为“abc”满足题意,当再进入“a”,队列就变成了“abca”,不满足题意,所以我们需要移动队列左边的元素,直到满足题意即可。
2023-11-21 21:14:34
256
原创 电路的基本原理
串行进位又称为行波进位。每一级进位直接依赖于前一级的进位,即进位信号是逐级形成的。加法就要分n次进行,每次产生一位和,并且串行。:把n个全加器串接起来,就可进行两个n位数的相加。A+B+C=A+(B+C)——结合律。A(C+D)=AC+AD——分配律。逻辑运算:与、或、非、异或等。Eg:AB+CD先算与再算或。ABC=A(BC)——结合律。异或门可用与、或、非组合实现。串行加法器:只有一个全加器,算术运算:加、减、乘、除等。辅助功能:移位、求补等。,以便参与下一次运算。Eg:实现AC+AD。
2023-11-19 22:27:09
556
原创 定点整数、小数
计算机硬件如何做定点小数补码的加法:从最低位开始,按位相加(符号位参与运算),并往更高位进位。①“被减数”不变,“减数”全部位按位取反、末位+1,减法变加法。对两个定点小数A、B进行加法/减法时,需要先转换为补码。②从最低位开始,按位相加,并往更高位进位。
2023-11-19 20:04:47
492
原创 计算机系统的层次结构和性能指标
FLOPS(Floating-point Operations Per Second):每秒执行多少次浮点运算(KFLOPS、MFLOPS、GFLOPS、TFLOPS)Eg:某CPU主频为1000Hz某程序包含100条指令,平均来看指令的CPl=3。:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次):将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。IPS(Instructions Per Second):每秒执行多少条指令(KIPS、MIPS)
2023-11-19 14:55:21
196
原创 计算机硬件的基本组成
11:(MQ)*X->ACC,导致(ACC)=6,由ALU实现乘法运算,如果乘积太大,需要MQ辅助存储。#8:M(MAR)->MDR,导致(MDR)=0000000000000011=3。#3:M(MAR)->MDR,导致(MDR)=000100 0000000110。#9:(MDR)->MQ,导致(MQ)=0000000000000011=3。#4:(MDR)->IR,导致(IR)=000100 0000000110。#6:AD(IR)->MAR,导致(MAR)=0000000110=6。
2023-11-19 11:33:18
279
人工智能ChatGPT的体验设计人工智能ChatGPT是自然语言处理领域的一项重要突破
2023-09-26
pdl语言讲解(设计性程序语言)
2022-10-26
关于#c##的问题:设有语句char ch[10]
2023-01-24
关于#c语言#的问题:如何理解:执行语句int *p=1000
2022-12-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人