
开发语言
文章平均质量分 73
开发语言是为程序员服务的,并不是用来来界定程序员的。
坐望云起
这个作者很懒,什么都没留下…
展开
-
ASP.NET Web API + VUE3 整合阿里云OSS,后端API生成预签名上传Url,前端VUE进行上传
4、图片可以上传了之后,发现在浏览器里面访问图片的时候不是预览而是下载,而vue里面访问直接就是403,我把防盗链的白名单加上了,因为是本地的测试,加的是localhost,图片在vue内可以显示了,在浏览器里还是下载,这个就先不管了。下面是后端生成上传Url的参考代码,主意request.ContentType,如果这里要是设置了,那么前端也要设置成一样的,如果前端是获取文件的contentType,可以传到后端来使用,我这里就没有进行设置,我目前只传图片。2、Content-Type的设置。原创 2025-03-25 16:58:40 · 820 阅读 · 0 评论 -
ASP.NET Web的 Razor Pages应用,ajax调用记录以及Cookie配置
一是配置AddAntiforgery自定义的HeaderName,因为这是.net corede的默认的预防跨网站请求伪造 (XSRF/CSRF) 攻击的手段,关闭了也不太好,所以添加自定义的头。二是Cookie认证的配置,如果不喜欢用Cookie,可以自己改成jwt之类的。下面是页面部分代码,核心在于@Html.AntiForgeryToken()。以及ajax请求的部分:重要的一是url,而是header的部分。url不能错,网页的命名空间也不能错,错了就会返回html。原创 2025-03-25 13:37:36 · 310 阅读 · 0 评论 -
ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新
Razor Pages应用,修改页面查看修改效果,如果没有热重载,改一句话跑一次,这个活就没法干了。原创 2025-03-22 14:45:28 · 472 阅读 · 0 评论 -
windows怎么查看进程运行时的参数?
在Windows中,可以使用命令行工具tasklist查看运行的进程列表。原创 2025-01-30 22:54:16 · 1288 阅读 · 0 评论 -
理解Android framework之AOSP:从内核到应用层
Android framework确保设备的各个部件和程序顺利协同工作。对于想要全面了解 Android 设备内部工作原理、开发高质量应用、优化设备性能以及充分利用 Android 生态系统潜力的人来说,了解 Android 框架也是必不可少的。它是连接用户、开发者和 Android 平台的桥梁,使他们能够解锁新功能和新可能性。原创 2024-08-06 20:59:23 · 2348 阅读 · 0 评论 -
ASP.NET Web应用中的 Razor Pages/MVC/Web API/Blazor
大多数服务器端语言都采用广泛使用的模型-视图-控制设计。它由三个主要组件组成:控制器、模型和视图。控制器负责输入并与模型和视图交互。视图负责用户界面,模型代表业务逻辑和数据。虽然 MVC 模型适用于 API 开发,但 Razor Pages 专注于页面而不是 API。如果您打算使用 Angular 或 React 等前端框架,那么 MVC 将是一个合适的选择。Razor Pages 是允许轻松加载数据的网页,类似于 HTML 页面。它们与 ASP.NET MVC 的视图组件非常相似,具有相同的语法和功能。原创 2024-07-06 11:05:03 · 1725 阅读 · 0 评论 -
C# Swagger 报错:Actions require an explicit HttpMethod binding for Swagger/OpenAPI 3.0
报错:Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Ambiguous HTTP method for action - WebApplication2.Controllers.CustomQueryBuilderController.Invoke (WebApplication2). Actions require an explicit HttpMethod binding for Swagger/OpenAPI 3.0。转载 2024-06-12 16:21:30 · 277 阅读 · 0 评论 -
C/C++学习笔记 CMake 与 Make有什么区别?
编译器是一种将源代码翻译成机器码的程序。代码的编译包括几个步骤,包括预处理、编译和链接,以创建可在其目标计算机上直接运行的库或可执行文件。 这个编译过程也称为构建过程,这是 CMake 和Make发挥作用的地方。CMake 和 Make 之间的主要区别之一是 CMake 创建的输出可供 Make 等构建系统使用。这意味着 CMake 充当其他构建系统的生成器,并不负责实际编译。相比之下,Make 的输出是可以在目标计算机上执行的已编译二进制文件。原创 2024-06-09 17:45:44 · 3790 阅读 · 0 评论 -
C/C++学习笔记 C语言中的\0以及查找字符串中字符出现的频率
在此示例中,计算了字符串对象中字符的频率。为此,使用size()函数查找字符串对象的长度。然后for 循环迭代直到字符串末尾。在每次迭代中,检查字符是否出现,如果发现,则计数增加 1。原创 2024-06-09 10:42:20 · 517 阅读 · 0 评论 -
C/C++学习笔记 C读取文本文件
要从文本文件中一次读取一个字符,可以使用 fgetc() 函数。2、每次从文件中读取一个字符。如果出现以下情况,该。读取字符并将其存储到中。3、逐行读取文本文件。原创 2024-06-01 11:32:36 · 601 阅读 · 0 评论 -
C#中如何定义带参数的EventHandler?
确实也可以,但是假如是跨进程呢,事件是由其它进程触发,我们无法挂载任何多余信息,而且进程状态不可控,并且关联到我们系统内的id,那么就需要再事件里面找到id,根据什么找呢?你肯定要问,我为什么一定要传参数,我定义全局的不成么?当然可以,但是假如你这个事件关联到全局的字典,在事件里面要区分是谁调用,那就有用了。事件调用的所有方法都需要两个参数:object sender,EventArgs e。所以更好的方法就是在绑定事件的时候,就把自定义的参数传入。该事件使用这两个参数调用方法,因此我们不能。原创 2024-04-23 08:36:01 · 774 阅读 · 0 评论 -
程序使用哪个寄存器是由谁决定的?
编译器分析程序的代码,识别常用的变量和表达式,并将它们映射到适当的寄存器。常用变量:程序的结构和数据访问模式影响寄存器的使用。数据局部性:寄存器分配还考虑数据局部性,旨在通过将经常访问的数据放置在寄存器中来使数据更靠近处理器。手动寄存器分配:在某些情况下,程序员可以手动指定寄存器的使用,以达到优化目的或控制特定的硬件交互。动态寄存器分配:动态寄存器分配发生在运行时,根据程序的执行流程和数据访问模式调整寄存器的使用。静态寄存器分配:静态寄存器分配在编译期间执行,分析整个程序的代码以确定寄存器的使用情况。原创 2024-04-19 11:57:04 · 560 阅读 · 0 评论 -
C#基于SSE传递消息给Vue前端实现即时单向通讯
通常前端调用后端的API,调用到了,等待执行完,拿到返回的数据,进行渲染,流程就完事了。如果想要即时怎么办?如果你想问什么场景非要即时通讯,那可就很多了,比如在线聊天、实时数据推送、视频会议等等。本人这里是要实现的流程是,Vue调用C#的API,然后API内新线程调用python执行任务,然后API就给前端返回执行开始的消息,Vue和API就结束了。但是python执行的是十分耗时的任务,需要不断的把中间节点的消息输出到前端,是这样子一个场景。原创 2024-04-16 07:26:14 · 1270 阅读 · 2 评论 -
c# 数组的使用
您可以在数组数据结构中存储相同类型的多个变量。您可以通过指定数组元素的类型来声明数组。如果您希望数组存储任何类型的元素,您可以指定object其类型。在 C# 的统一类型系统中,所有类型(预定义的和用户定义的、引用类型和值类型)都直接或间接继承自Object。数组具有以下属性:1、数组可以是单维、多维或锯齿状的。2、维数是在声明数组变量时设置的。3、每个维度的长度是在创建数组实例时确定的。这些值在实例的生命周期内无法更改。4、交错数组是数组的数组,每个成员数组都有默认值null。原创 2024-03-12 21:34:21 · 1572 阅读 · 0 评论 -
C/C++学习笔记 vcpkg使用备忘及简要说明
vcpkg 是一个免费的 C/C++ 包管理器,用于获取和管理库。从 1500 多个开源库中进行选择,一步下载并构建,或者添加您自己的私有库以简化构建过程。由 Microsoft C++ 团队和开源贡献者维护。原创 2024-01-08 08:55:31 · 706 阅读 · 0 评论 -
.cer格式证书文件和 .pfx格式证书文件有什么区别?
数字证书在电子通信中用作验证身份的密码机制。我们需要这些证书来建立安全的在线通信渠道,并确保数字数据的隐私、真实性和正确性。数字证书包括主题(实体详细信息)、颁发者(CA信息)、公钥(用于加密/验证)和有效期(开始日期和到期日期)等组件:主题包含一些细节,如通用名称和组织,颁发者披露CA详细信息,公钥对应于实体的私钥,这对加密和签名验证至关重要。有效期确定证书的时间框架,指定开始日期和到期日期。原创 2024-01-04 12:02:45 · 736 阅读 · 0 评论 -
C/C++学习笔记十三 C++中的重载运算符
1、什么是运算符重载?运算符重载是 C++ 中的一项功能,使运算符(例如 +、- 等)能够处理用户定义的数据类型。这种机制称为编译时多态性,并提供了为不同数据类型定制运算符行为的优点。例如,我们可以重载“+”运算符来执行整数加法、字符串串联以及复数加法。这增强了运算符的多功能性,使他们能够对更广泛的数据类型进行操作。2、什么是运算符函数?运算符函数是一种专门类型的函数,它为特定运算符提供替代实现。它的语法与常规函数类似,但其名称以“operator”关键字开头,后跟运算符符号。原创 2023-12-25 10:38:53 · 468 阅读 · 0 评论 -
机器学习笔记 - R语言学习入门系列一
R是用于统计计算和图形的免费软件环境。它可以在各种 UNIX 平台、Windows 和 MacOS 上编译和运行。 官方下载地址:CRAN - Mirrorshttps://cran.r-project.org/mirrors.html windows版本的只要下载安装即可。 安装完成的界面如下 使用 R,您可以编写函数、进行计算、应用大多数可用的统计技术、创建简单或复杂的图形,甚至编写自己的库函数。 R 中使用的编程在不同的方法中是相原创 2022-06-05 19:07:24 · 491 阅读 · 0 评论 -
面向开发人员的 Spring Boot 最佳实践
使用 Spring Boot 启动器Spring Boot是一种广泛使用且非常流行的企业级高性能框架。以下是一些最佳实践和一些技巧,您可以使用它们来改进 Spring Boot 应用程序并使其更加高效。这篇文章会有点长,完整读完文章需要一些时间。正确的包装风格根据类型组织根据功能组织。原创 2023-08-11 11:54:51 · 200 阅读 · 0 评论 -
C/C++学习笔记 Vantage Point Trees的C++实现
函数决定是跟随左孩子、右孩子还是两个孩子。为了有效地维护结果列表,我们使用优先级队列。下面代码是VP 树的 C++ 实现,递归。下面是具体的调用,需要用到下面的数据。原创 2023-08-08 15:20:23 · 620 阅读 · 0 评论 -
对于加密数据(数据库字段级别加密)存储和并搜索的一些调查
如果您认为不良行为者不可避免地会进入您的网络,那么在将敏感数据放入数据库或文档存储之前对其进行加密是保护数据的最佳方法。对于敏感数据应该这么做。这种在存储之前进行加密的方法称为应用层加密,有相当数量的公司使用它来保护其敏感数据。2017 年,Equifax 遭到黑客攻击,这是历史上最大的泄密事件之一。攻击者下载了 1.46 亿美国人的出生日期、社会安全号码、地址和其他敏感信息。国会关于此次攻击的报告如下:攻击者能够使用这些凭据访问 48 个不相关的数据库。原创 2023-07-12 09:25:07 · 1140 阅读 · 0 评论 -
数据结构和算法 数论 中国余数定理
找出所有整数,它们被3、5、7除时,余数分别为2,3和2。一个这样的解为,所有的解是形如(k为任意整数)的整数。“中国余数定理”提出,对一组两两互质的模数(如3、5、7)来说,其取模运算的方程组与对其积(如105)取模运算的方程之间存在着一种对应关系。中国余数定理被广泛用于计算大整数,因为它允许用几个类似的小整数计算来替换一个知道结果大小界限的计算。原创 2022-05-26 09:04:20 · 1795 阅读 · 0 评论 -
数据结构和算法 递归/循环遍历二叉树
二叉树是一种常见的数据结构,其特点是每一个节点元素都最多包含两个子节点,左子节点和右子节点。二叉树可以有5种基本形态,空二叉树、只有根节点、右子树为空,左子树为空,左、右子树均非空。二叉树有着广泛的应用,如描述语法结构,表示数据库对象的层次关系。递归遍历的缺点是如果二叉树的节点较多,系统性能会收到很大影响。利用循环遍历二叉树,需要设计栈的结构,用于存储遍历的节点,利用栈结构的后进先出的特点,遍历所有节点。主要思路是首先根据根节点遍历其下左节点,直至左子节点为空。原创 2022-04-30 06:00:00 · 744 阅读 · 0 评论 -
数据结构和算法 数论 素数/质数、回文素数
素数是初等数论中重点研究的对象,早在公元前300年,当时古希腊著名数学家欧几里得发现了数论的本质是素数。欧几里得在其著作《几何原本》中证明了素数具有无穷多个。素数又称为质数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数。比1大,但不是素数的称为合数。0和1既不是素数也不是合数。素数的分布没有很明显的规律,仍然有很多伟大的数学家对其进行研究。例如,最早的欧几里得、17世纪法国的费尔马、法国的梅森等。原创 2022-05-23 11:13:32 · 1916 阅读 · 0 评论 -
数据结构和算法 十一、二叉搜索树/AVL树
二叉搜索树遵循某种顺序来排列元素。在二叉搜索树中,左节点的值必须小于父节点,右节点的值必须大于父节点。该规则递归地应用于根的左子树和右子树。原创 2022-03-12 08:14:55 · 458 阅读 · 0 评论 -
数据结构和算法 函数调用栈和递归
函数栈,在x86的计算机系统中,内存空间中的栈主要用于保存函数的参数,返回值,返回地址,本地变量等。一切的函数调用都要将不同的数据、地址压入或者弹出栈。现代高级语言编译的程序几乎总是使用堆栈帧来存储每个过程或函数调用的工作内存。当任何过程或函数被调用时,一些栈帧被压入程序栈。当过程或函数返回时,这帧数据会从堆栈中弹出。原创 2021-10-24 11:17:46 · 1045 阅读 · 0 评论 -
数据结构和算法 十六、指数查找/跳转搜索/鞍背搜索
指数查找/跳转搜索/鞍背搜索原创 2022-03-20 15:50:48 · 618 阅读 · 0 评论 -
关于数据库索引的入门简述
数据库索引是现代数据库中高效数据检索的一个重要工具。它在优化查询性能和加快数据检索操作方面发挥着重要作用。这里我们深入了解下数据库索引其内部工作原理、优点和局限性。二、数据库1、SQL 数据库为了理解索引,先说一句数据库,数据库是可靠地插入、存储、更新、检索和删除数据的一种有组织的方式。它们的工作方式是将有关各种实体的信息存储在表中,每个表由行和列组成:2、表结构和列在表中,数据被组织成行,每行代表一个记录或条目。另一方面,列定义这些记录的各种属性或属性。原创 2023-06-18 21:03:13 · 432 阅读 · 0 评论 -
数据结构和算法 十七、排序算法
冒泡排序(Bubble Sort)算法是所有排序算法中最简单、最基本的一种。冒泡排序算法的思路就是交换排序,通过相邻数据的交换来达到排序的目的。快速排序(Quick Sort)算法和冒泡排序算法类似,都是基于交换排序思想的。快速排序算法对冒泡排序算法进行了改进,从而具有更高的执行效率。快速排序是一种分治算法。它选择一个元素作为轴,并围绕选择的轴对给定数组进行分区。有许多不同版本的 quickSort 以不同的方式选择轴。选择排序(Selection Sort)算法也是比较简单的排序算法......原创 2022-03-29 11:45:37 · 1244 阅读 · 0 评论 -
数据结构和算法 十三、伸展树
伸展树是二叉搜索树的变体。伸展树不是严格平衡的树,但它们是大致平衡的树。与AVL和红黑树一样,Splay 树也是自平衡 BST。展开树的主要思想是将最近访问的项目带到树的根部,这使得最近搜索的项目如果再次访问可以在 O(1) 时间内访问。这个想法是使用参考位置(在典型的应用程序中,80% 的访问是对 20% 的项目)。想象一下,我们有数百万或数十亿个密钥,而其中只有少数被频繁访问,这在许多实际应用中很可能发生。原创 2022-03-12 10:22:21 · 685 阅读 · 0 评论 -
数据结构和算法 数论 概述
数论曾经被视为一种虽然优美但却没什么用处的纯数学学科。如今,数论算法已经得到了广泛的使用。这很大程度上要归功于人们发明了基于大素数的加密方法。快速计算大素数的算法使得高效加密成为可能,而目前其安全性的保证则依赖于缺少高效将合数分解为大素数之积(或求解相关问题,如计算离散对数)方法的现状。数论是一门研究整数性质的数学学科。在我国古代和西方都有对数论相关问题的探讨,有些基本问题在我国古代研究得更早。不过由于西方研究得更为系统,因此数论中的很多概念是采用西方数学家所定义的。原创 2022-05-19 09:49:48 · 785 阅读 · 0 评论 -
数据结构和算法 八、散列表
大多数编程语言都自带散列表这种能够快速读取的数据结构。但在不同的语言中,它有不同的名字,除了散列表,还有散列、映射、散列映射、字典、哈希表、关联数组。散列表是最重要的数据结构之一,它使用一种称为散列函数的特殊函数,该函数将给定值与键映射以更快地访问元素。散列表是一种存储一些信息的数据结构,信息基本上有两个主要组成部分,即键和值。散列表可以在关联数组的帮助下实现。映射的效率取决于用于映射的散列函数的效率。原创 2022-03-10 21:13:04 · 272 阅读 · 0 评论 -
数据结构和算法 五、树
树(Tree)结构是一种描述非线性层次关系的数据结构,其中重要的是树的概念。树是n个数据结点的集合,在该集合中包含一个根结点,根结点之下分布着一些互不交叉的子集合,这些子集合是根结点的子树。树结构的基本特征如下:在一个树结构中,有且仅有一个结点没有直接前驱,这个结点就是树的根结点;除根结点外,其余每个结点有且仅有一个直接前驱;每个结点可以有任意多个直接后继。原创 2022-03-10 17:44:19 · 606 阅读 · 0 评论 -
数据结构和算法 十二、红黑树
红黑树是一种平衡二叉搜索树,其中每个节点都包含一个额外的信息位,表示节点的颜色。节点的颜色可以是红色或黑色,这取决于节点存储的位信息。这些颜色用于确保树在插入和删除期间保持平衡。虽然树的平衡并不完美,但减少搜索时间并将其保持在 O(log n) 时间左右就足够了,其中 n 是树中元素的总数。红黑树树是鲁道夫拜耳于 1972 年发明的。原创 2022-03-12 08:51:06 · 388 阅读 · 0 评论 -
数据结构和算法 数论 亲密数
1、什么是亲密数?亲密数(Amicable Numbers),是具有特殊性质的整数。亲密数展示了两个整数之间通过因子的密切联系。如果整数a的因子和等于整数b,整数b的因子和等于整数a,因子包括1但不包括本身,且a不等于b,则称a、b为亲密数。例如,220和284便是一对亲密数,满足如下规则。220的各个因子之和为:1+2+4+5+10+11+20+22+44+55+110=284; 284的各个因子之和为:1+...原创 2022-05-22 09:34:11 · 5515 阅读 · 0 评论 -
数据结构和算法 十四、B树和B+树
B-Tree 是一种自平衡的搜索树。在大多数其他自平衡搜索树(如AVL和红黑树),假设一切都在主存储器中。要了解 B-Trees 的使用,我们必须考虑无法放入主存的大量数据。当键数较多时,以块的形式从磁盘中读取数据。与主存访问时间相比,磁盘访问时间非常长。使用 B-Tree 的主要思想是减少磁盘访问次数。大多数树操作(搜索、插入、删除、max、min、..etc)需要 O(h) 磁盘访问,其中 h 是树的高度。B树是一棵肥树。通过在 B-Tree 节点中放置最大可能的键来保持 B原创 2022-03-12 18:49:32 · 861 阅读 · 0 评论 -
数据结构和算法 布隆过滤器示例
布隆过滤器是一种数据结构,旨在快速且高效地告诉您某个元素是否存在于集合中。这种效率的代价是布隆过滤器是一种概率数据结构:它告诉我们元素要么肯定不在集合中,要么可能在集合中。 假设您正在github上创建一个帐户,您想输入一个很酷的用户名,您输入它并收到一条消息,“用户名已被占用”。您在用户名中添加了您的出生日期,仍然被占用。现在你也添加了你的部分身份证号,仍然得到“用户名已经被占用”。这真的很令人沮丧,不是吗? 但是你有没有想过github通过搜索数百万注册的用户名来检查用户名的原创 2022-06-03 06:00:00 · 291 阅读 · 0 评论 -
数据结构和算法 六、堆
堆是一种特殊的树型数据结构,一般讨论的堆都是二叉堆。堆的特点是其根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构。二叉堆是具有以下属性的二叉树。1)它是一棵完整的树(除了可能的最后一层,所有层都被完全填满,最后一层的所有键都尽可能左)。二叉堆的这一特性使它们适合存储在数组中。2) 二叉堆是最小堆或最大堆。在最小二叉堆中,根处的键必须是二叉堆中所有键中的最小值。原创 2022-03-10 18:22:53 · 635 阅读 · 0 评论 -
数据结构和算法 二、数组和链表
数组是计算机科学中最基本的数据结构之一。使用数组意味着所有元素在内存中都是相连的(紧靠在一起的)。像数组一样,链表也用来表示一系列的元素。事实上,能用数组来做的事情,一般也可以用链表来做。然而,链表的实现跟数组是不一样的,在不同场景它们会有不同的性能表现。链表中的元素可存储在内存的任何地方。链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。原创 2022-01-24 10:35:13 · 433 阅读 · 0 评论 -
数据结构和算法 二十、分治法
分治法(Divide and Conquer,也称为“分而治之法”)是一种很重要的算法,我们可以应用分治法来逐一拆解复杂的问题,核心思想是将一个难以直接解决的大问题按照相同的概念分割成两个或更多的子问题,以便各个击破,即“分而治之”。其实任何一个可以用程序求解的问题所需的计算时间都与其规模与复杂度有关,问题的规模越小,越容易直接求解,因此可以使子问题的规模不断缩小,直到这些子问题简单到可以解决,最后将各个子问题的解合并,得到原问题的答案。原创 2022-04-18 06:00:00 · 1018 阅读 · 0 评论