自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 C# 异步协程

C# 异步协程的引入大大简化了异步编程的复杂性,使得开发者可以专注于业务逻辑,而不用担心底层的线程管理和同步问题。这种编程模型已经成为 C# 中处理异步操作的首选方法。

2024-04-17 17:15:21 292

原创 Java自定义属性更改监听器

在Java中,可以使用PropertyChangeListener接口和PropertyChangeSupport类来实现属性更改监听器。下面是一个示例代码,演示如何创建一个自定义的MyPropertyChangeListener类来监听属性变化:1.:自定义属性更改监听器类,实现PropertyChangeListener接口。

2024-04-17 09:59:26 189

原创 [排序算法]冒泡排序法

虽然冒泡排序在效率上不如一些更高级的排序算法(如快速排序、归并排序等),但由于其实现简单,对于一些小规模数据的排序或者学习排序算法的基本概念时,冒泡排序仍然是一个很好的选择。此外,冒泡排序的一个优点是它能够在发现数组已经排序好的情况下提前结束排序过程,尽管这种情况在最坏的情况下不会减少比较次数,但在最佳情况下(即数组已经是排序状态)可以达到 O(n) 的时间复杂度。

2024-04-10 18:18:57 280

原创 C#List<object>和object[]的区别

在选择使用List还是object[]时,需要考虑你的具体需求,包括集合的大小是否需要改变、是否需要集合提供的方法、性能要求等因素。如果你需要一个灵活的、可扩展的集合,并且可能会使用到集合的API,那么List可能是更好的选择。如果你需要一个固定大小的集合,并且对性能有较高的要求,那么object[]可能更适合你的需求。

2024-04-10 17:58:13 336

原创 C#基本数据的类型转换

自动类型转换是指将一个数据类型的值直接赋给另一个兼容的数据类型,而不需要显式地进行类型转换。C#支持自动类型转换的类型如下所示,左边的数值类型可以自动类型转换成箭头右边的数值类型 : byte ->short->int->long->float->double。类型用于表示 Unicode 字符,其取值范围是从 U+0000 到 U+FFFF(包括 0 到 65535 之间的整数)。当目标类型的取值范围小于源类型时,或者需要将一种类型转换为另一种类型时,需要使用显式强制类型转换。它是基本数据类型,对应。

2024-03-27 17:21:37 791

原创 Java基本数据的类型转换

当进行强制类型转换时,类似于把一个大瓶子里面的水倒入一个小瓶子,如果大瓶子里面的水不多还好,如果大瓶子里面的水很多,将会引起溢出,从而造成数据丢失。注意:当试图强制把表数范围大的类型转换为表示范围小的类型时,必须格外小心,因为非常容易引起信息丢失。如果希望上面自动转换中,箭头右边的类型转换成左边的类型,则必须进行强制类型转换。Java支持自动类型转换的类型如下所示,左边的数值类型可以自动类型转换成箭头右边的数值类型。1)所有的byte类型 ,short类型和char类型将被提升到int类型。

2024-03-27 15:19:24 752

原创 C#[数据结构]之堆(Heap)栈(Stack)

C# 程序在 CLR(Common Language Runtime)上运行时,内存被逻辑地划分为两个主要部分:栈和堆。除了栈和堆之外,CLR 还维护了其他一些内存区域,例如静态存储区域(Static Storage Area)、常量存储区域(Constant Storage Area)等。这些内存区域都有各自的特点和用途,可以帮助我们更好地管理程序内存和资源的使用。在 C# 程序运行时,栈和堆是其基本元素,它们组成了程序的运行环境,对程序的性能和稳定性有着重要的影响。

2023-07-24 18:02:19 2089

原创 [数据结构]链表之循环链表

需要注意的是,在循环链表中,插入和删除操作需要额外考虑最后一个节点的next指针和第一个节点的prev指针的修改。总之,循环链表是一种特殊的链表结构,在实现各种操作时需要注意其连续性和有序性,并针对特殊情况进行相应的处理。需要注意的是,在进行各种操作时,需要保证循环链表的连续性和有序性,以避免数据不一致等问题的发生。需要注意的是,在进行各种操作时,需要保证循环链表的连续性和有序性,即每个节点的next指针都指向下一个节点,并且最后一个节点的next指针指向头节点。但是,其实现简单,无需处理哈希冲突等问题。

2023-07-17 16:59:20 2105 2

原创 [数据结构]线性表之顺序表

顺序表是一种通过数组来实现的数据结构,其中的元素在内存中是连续存储的,每个元素占用固定大小的空间。总之,顺序表是一种常见的数据结构,具有优异的随机访问效率,但在插入、删除和搜索等操作上效率较低,使用时需要根据具体需求和应用场景进行选择。其操作的时间复杂度主要取决于元素的插入、删除和查找等操作,在实际应用中需要根据具体情况选择合适的算法和数据结构,并进行权衡和折衷。总之,顺序表是一种常见的数据结构,在需要随机访问和修改元素的场景中具有优异的性能表现。顺序表的空间复杂度为O(n),即需要存储n个元素的空间。

2023-07-04 16:32:05 194

原创 [数据结构]链表之双链表

双向链表(Doubly Linked List)是一种常见的数据结构,与单链表相比,它增加了一个指向前驱节点的指针,因此每个节点除了有指向后继节点的指针外,还有一个指向前驱节点的指针。双向链表是一种常见的数据结构,与单向链表相比,它增加了一个指向前驱节点的指针,因此每个节点除了有指向后继节点的指针外,还有一个指向前驱节点的指针。与栈比较:双向链表和栈都可以实现FILO(先进后出)的数据结构,但是双向链表相比栈更加灵活,可以支持在任意位置插入和删除节点,而栈只能在栈顶插入和删除元素。时间复杂度为O(n)。

2023-06-29 17:39:02 821

原创 [数据结构]链表之单链表

单链表是一种常见的线性数据结构,由若干个节点组成,每个节点包含两部分:数据元素和指向下一个节点的指针。每个节点只有一个指针,通常称为 next 指针,它指向该节点的后继节点。头节点是第一个节点前面额外添加的一个节点,它不包含数据元素,但是包含对第一个节点的指针。单链表可以表示任意长度的序列,可以动态地插入、删除节点,使其具有灵活性和高效性。但由于每个节点只有一个指针,因此单链表只能从前往后遍历,不能反向遍历。以下是单链表常用的操作:创建链表:创建一个空链表,可选是否带有头节点。

2023-06-16 18:13:07 562

原创 深度优先搜索(DFS)算法

深度优先搜索算法(DFS)是一种用于遍历图形结构的算法,它从一个起始顶点开始,沿着一条路径尽可能深入地访问图中的所有顶点,直到不能继续为止,然后返回并探索其他路径。DFS算法使用栈数据结构来实现,在访问完一个顶点后,将其未被访问的邻居压入栈中,并标记为已访问,然后从栈中取出下一个未被访问的顶点,继续进行同样的操作,直到栈为空为止。DFS算法可以用于解决图中的许多问题,例如找出两个顶点之间的最短路径、判断图是否为连通图等。DFS算法的时间复杂度为O(V+E),其中V为顶点数,E为边数。DFS算法相比BFS算法

2023-06-07 17:08:11 4104

原创 广度优先搜索(BFS)算法

广度优先搜索算法(BFS)是一种用于遍历图形结构的算法,它从一个起始顶点开始,先依次访问这个顶点的所有邻居顶点,然后再按照距离逐层遍历图中的所有顶点。BFS算法使用队列数据结构来实现,在访问完一个顶点后,将其未被访问的邻居加入队列中,并标记为已访问,然后从队列中取出下一个未被访问的顶点,重复以上过程,直到队列为空为止。BFS算法可以用于解决图中的许多问题,例如找出两个顶点之间的最短路径、判断图是否为二分图等。BFS算法的时间复杂度为O(V+E),其中V为顶点数,E为边数。

2023-06-07 15:48:02 2608

原创 C#执行某对象的某个方法

3.委托调用方法:在C#中,可以使用委托调用方法。委托是一种类型,它封装了一个或多个方法,并允许将这些方法作为参数传递给其他方法或存储在变量中。需要注意的是,使用反射调用方法可能会降低程序的性能,因为它需要在运行时进行类型信息的获取和方法调用的解析。需要注意的是,委托类型必须与要封装的方法具有相同的签名,即参数列表和返回类型都必须匹配。1.直接调用方法:如果我们有一个对象,并且知道它的方法名称和参数列表,那么可以直接调用该方法。,它封装了一个方法,该方法接受一个字符串类型的参数并返回void。

2023-06-06 15:42:27 392

原创 C# 读取Excel的几种常见方式及实现步骤

读取Excel的几种常见方式为:使用 Microsoft Office Interop Excel 库,使用 OLEDB 数据库连接方式,使用 EPPlus 库三种方式,在以上三种方法中,第一种和第二种方法需要安装额外的依赖库,并且性能较低;而第三种方法虽然需要引入 EPPlus 依赖库,但性能较高且使用方便。具体选择哪种方式可以根据自己的实际情况来考虑。

2023-05-11 17:05:53 8082

转载 一文搞懂HTTP,TCP,UDP,Socket,WebSocket

转载:一文搞懂HTTP,TCP,UDP,Socket,WebSocket-技术教程-图南导航一、这一大堆关键词之间到底有啥区别?有名字就有定义,理解的前提从来都是对定义有所了解。就好比现在让你形容一下梯形的定义,如果你不知道定义,你就可能把平行四边形当做特殊的梯形处理,也就有可能把TCP和Socket搞混,更加会纠结TCP连接与Socket连接以及HTTP的长/短连接之间到底有啥区别。其实有了区别才好理解。但在这之前首先得理清一个概念,那就是OSI七层模型,以及所谓的五层模型,四层模型到底是什么

2023-05-11 16:51:31 271

原创 最短路径查找-迪杰斯特拉算法

迪杰斯特拉算法(Dijkstra's algorithm)是一种用于解决带权有向图(weighted directed graph)中单源最短路径问题的算法。它以一个节点作为起点,计算该节点到其它所有节点的最短路径。迪杰斯特拉算法的基本思想是从起点开始,逐步扩展出新的节点,并尝试通过这些节点更新已经扩展过的节点到起点的距离。在每次扩展时,选择当前距离起点最近的未扩展节点进行扩展,并使用该节点到起点的距离更新已经扩展过的节点到起点的距离。重复执行这个过程,直到所有节点都被扩展过为止。

2023-05-11 16:49:09 195

原创 C# 常用Excel导出的几种常见方式及实现步骤

在C#中,常用的Excel 文件导出方式包括:使用 Microsoft Office Interop Excel 组件,使用 NPOI 组件导出 Excel 文件,使用 EPPlus 组件导出Excel文件,使用 ClosedXML 组件导出 Excel 文件四种常用方式,以下仅根据这四种Excel导出方式展开介绍其实现步骤,并列举出示例代码,仅供大家学习参考,欢迎大家留言

2023-05-11 16:16:52 5333 1

转载 彻底理解 cookie、session、token

1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮。2、但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪些人登录系统, 哪些人往自己的购物车中放商品, 也就是说我必须把每个人区分开,这就是一个不小的挑战,因为HTTP请求是无状态的

2022-06-29 11:17:21 81 1

原创 TortoiseSVN新人使用指南

此篇文章比较适合初入职场的程序员小白,版本管理工具已经成为程序猿必须掌握的一项技能,相对于git,SVN更容易和操作和掌握,所以谨以此篇献给那些刚开始接触SVN的小白们。

2022-06-07 10:11:56 1901

原创 php计算两个坐标(经度,纬度)之间的方位角

【代码】php计算两个坐标(经度,纬度)之间的方位角。

2021-12-22 10:51:23 711 1

原创 php计算两个坐标(经度,纬度)之间距离

php计算两个坐标(经度,纬度)之间距离

2021-11-23 10:16:02 971 1

原创 Docker部署PHP+Nginx+MySQL

目录安装 PHP 镜像安装 Nginx 镜像安装 PHP 镜像用 docker search php 命令来查看可用版本[root@ergeth23set3asr56erty45~]# docker search phpNAME DESCRIPTION STARS OFFICIAL AUTOMATEDphp

2021-11-10 13:54:36 3131 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除