摘要:
-- 从 weather 表中选择今天的记录(t1)和昨天的记录(t2) SELECT t1.* FROM weather t1 JOIN weather t2 ON -- 通过日期关联今天和昨天的记录,利用 t1 的日期减去 t2 的日期结果为 1 t1.record_date - t2.reco 阅读全文
随笔档案-2025年02月
c#把一个字符串,按每个字母作为key,出现的次数作为value形成一个字典的代码
2025-02-17 18:29 by 钟铧若岩, 1 阅读, 收藏, 编辑
摘要:
using System; using System.Collections.Generic; class Program { static void Main() { string input = "hello world"; Dictionary<char, int> letterCount = 阅读全文
什么叫数据库范式
2025-02-16 16:53 by 钟铧若岩, 79 阅读, 收藏, 编辑
摘要:
数据库范式(Database Normalization Forms)是为了建立冗余较小、结构合理的数据库而制定的规范标准。满足这些规范的数据库设计可以减少数据冗余、避免数据不一致性问题,提高数据的存储效率和可维护性。常见的数据库范式有第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯 阅读全文
说说显示实现接口和隐式实现接口的区别
2025-02-16 14:36 by 钟铧若岩, 5 阅读, 收藏, 编辑
摘要:
在 C# 中,实现接口有显式实现和隐式实现两种方式,它们在语法、访问方式和使用场景等方面存在一些区别,下面为你详细介绍。 语法差异 隐式实现接口 当使用隐式实现接口时,接口的方法会被当作类的公共方法来实现,不需要额外的限定符。 // 定义一个接口 public interface IMyInterf 阅读全文
c# static 关键字的作用
2025-02-16 13:28 by 钟铧若岩, 3 阅读, 收藏, 编辑
摘要:
在 C# 中,static 关键字具有多种用途,可用于类、字段、方法、属性、构造函数和事件等成员上,下面详细介绍其在不同场景下的作用。 静态类 定义:当 static 关键字用于类时,该类被定义为静态类。静态类不能被实例化,它只能包含静态成员。 作用:静态类通常用于创建工具类,这些类提供一组相关的实 阅读全文
快速排序算法
2025-02-16 10:38 by 钟铧若岩, 1 阅读, 收藏, 编辑
摘要:
public static void QuickSort(int[] arr, int left, int right) { if (left < right) { int pivotIndex = Partition(arr, left, right); QuickSort(arr, left, 阅读全文
观察者,装饰,策略模式
2025-02-15 14:27 by 钟铧若岩, 4 阅读, 收藏, 编辑
摘要:
观察者模式(Observer Pattern) 简述观察者模式的概念和应用场景 观察者模式定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。 应用场景包括事件处理系统(如按钮点击事件通知多个监听器)、股票价格变化通知多个投资者等。 在 C# 中实现观察者 阅读全文
http常见错误码
2025-02-15 12:46 by 钟铧若岩, 6 阅读, 收藏, 编辑
摘要:
1xx:信息性状态码 这类状态码表示临时的响应,通常用于告知客户端请求已收到,并且正在处理中。常见的 1xx 状态码有: 100 Continue:客户端在发送包含 Expect: 100 - continue 头部的请求时,服务器返回此状态码,表示客户端可以继续发送请求的剩余部分。 2xx:成功状 阅读全文
POST GET有什么区别
2025-02-15 12:43 by 钟铧若岩, 9 阅读, 收藏, 编辑
摘要:
POST 和 GET 是 HTTP 协议中两种常用的请求方法,它们在多个方面存在明显区别,以下为你详细介绍: 1. 用途 GET:主要用于从服务器获取资源。比如,当你在浏览器地址栏输入一个网址并回车,浏览器通常会发送一个 GET 请求到服务器,以获取该网页的内容。另外,在搜索引擎中输入关键词进行搜索 阅读全文
c# josn序列化,反序列化的例子
2025-02-15 11:40 by 钟铧若岩, 14 阅读, 收藏, 编辑
摘要:
在 C# 中,常见的 JSON 序列化和反序列化方式可以借助不同的库来实现,下面为你分别介绍使用 System.Text.Json 和 Newtonsoft.Json(Json.NET)这两个库的具体示例。 1. 使用 System.Text.Json System.Text.Json 是.NET 阅读全文
C# xml序列化与反序化有哪些方法
2025-02-15 11:07 by 钟铧若岩, 6 阅读, 收藏, 编辑
摘要:
在 C# 中,XML 序列化和反序列化是将对象转换为 XML 格式(序列化)以及将 XML 格式转换回对象(反序列化)的过程。以下为你详细介绍相关的方法和示例。 1. 使用 System.Xml.Serialization.XmlSerializer 类 XmlSerializer 是.NET 框架 阅读全文
Task里面使用到for的具部变量
2025-02-14 19:01 by 钟铧若岩, 1 阅读, 收藏, 编辑
摘要:
在 C# 里,当你在 for 循环中使用 Task 并且要把 for 循环的变量传递给 Task 时,需要特别注意变量捕获的问题。因为如果不恰当处理,可能会出现所有 Task 都使用循环结束时变量的最终值这种情况。下面为你介绍几种正确的处理方式。 方法一:使用临时变量 在每次循环中创建一个临时变量来 阅读全文
Redis有哪些适合的场景
2025-02-11 13:52 by 钟铧若岩, 7 阅读, 收藏, 编辑
摘要:
Redis 由于其高性能、丰富的数据结构等特性,在众多场景中都有广泛应用,以下为你详细介绍: 缓存 页面缓存:在 Web 应用里,对于一些不经常变化但访问频繁的页面,如新闻网站的头条页面、电商网站的商品列表页等,可将页面内容以字符串形式存储在 Redis 中。用户访问时,优先从 Redis 缓存中获 阅读全文
Redis集群方案应该怎么做?都有哪些方案
2025-02-11 11:58 by 钟铧若岩, 56 阅读, 收藏, 编辑
摘要:
在构建 Redis 集群时,需要根据业务需求、数据规模、性能要求等因素选择合适的方案。以下为你详细介绍几种常见的 Redis 集群方案及其搭建方法: Redis 官方集群(Redis Cluster) 方案介绍:Redis 官方推出的分布式解决方案,采用哈希槽(Hash Slot)来实现数据的分片存 阅读全文
Redis有哪几种数据淘汰策略
2025-02-11 11:50 by 钟铧若岩, 54 阅读, 收藏, 编辑
摘要:
Redis 在内存使用达到上限时,为了继续提供服务,会依据设定的数据淘汰策略来删除部分数据,以下是 Redis 支持的几种主要数据淘汰策略: 不淘汰数据 noeviction 策略说明:这是 Redis 的默认淘汰策略。当内存使用达到上限后,Redis 不会淘汰任何数据,此时如果客户端尝试执行会导致 阅读全文
Redis支持哪几种数据类型
2025-02-11 11:48 by 钟铧若岩, 7 阅读, 收藏, 编辑
摘要:
Redis 支持多种数据类型,每种数据类型都有其独特的特点和适用场景,以下为你详细介绍: 字符串(String) 简介:Redis 最基础的数据类型,也是最常用的数据类型之一。字符串类型的值可以是字符串、数字或者二进制数据,不过值最大不能超过 512MB。 适用场景:缓存、计数器、分布式锁等。例如, 阅读全文
Redis相比memcached有哪些优势
2025-02-11 11:43 by 钟铧若岩, 3 阅读, 收藏, 编辑
摘要:
Redis 和 Memcached 都是常用的内存数据存储系统,Redis 相比 Memcached 具有以下多方面的优势: 数据结构丰富性 Redis:支持多种复杂的数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等。这使得 阅读全文
什么是Redis?简述它的优缺点?
2025-02-11 11:40 by 钟铧若岩, 27 阅读, 收藏, 编辑
摘要:
Redis 是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是 Redis 的优缺点介绍: 优点 性能极高:Redis 将数据存储在内存中,所有的读写操作都在内存中进行,避免了磁盘 I/O 的开销,因此具有极高的读写速度。这使得它非常适合用于对性能要求极高的场景,如 阅读全文
为什么下面-11.5,执行之后是-12呢。 Math.Round(11.5)=12 Math.Round(-11.5)=-12
2025-02-10 16:41 by 钟铧若岩, 5 阅读, 收藏, 编辑
摘要:
在 C# 中,Math.Round 方法有多个重载版本,其舍入行为取决于你使用的具体重载以及所采用的舍入模式。当出现 Math.Round(11.5) 结果为 12,Math.Round(-11.5) 结果为 -12 的情况,这与 Math.Round 默认使用的舍入模式有关,下面为你详细解释: 舍 阅读全文
什么是应用程序域,一个进程内可以有多个应用程序域不?
2025-02-10 16:33 by 钟铧若岩, 20 阅读, 收藏, 编辑
摘要:
应用程序域的定义 应用程序域(Application Domain,简称 AppDomain)是 .NET 运行时环境提供的一种隔离机制,它为应用程序提供了一个独立的执行环境。可以把应用程序域看作是进程中的一个逻辑分区,每个应用程序域就像是一个轻量级的进程,它可以在同一个操作系统进程内独立地加载、执 阅读全文
请描述一下什么叫C#扩展方法,并举一个例子
2025-02-10 16:28 by 钟铧若岩, 16 阅读, 收藏, 编辑
摘要:
C# 扩展方法的定义 C# 扩展方法允许你在不修改现有类型的源代码的情况下,为该类型添加新的方法。它是一种特殊的静态方法,但可以像实例方法一样调用。扩展方法为现有的类型(包括 .NET 框架中的内置类型、自定义类型等)添加功能提供了一种便捷的方式,同时又不会破坏类型的封装性和原有结构。 扩展方法的使 阅读全文
C#中索引器的实现过程
2025-02-10 16:23 by 钟铧若岩, 14 阅读, 收藏, 编辑
摘要:
在 C# 中,索引器是一种特殊的属性,它允许对象像数组一样通过索引来访问其元素。下面为你详细介绍索引器的实现过程以及索引类型的相关情况。 索引器的实现过程 1. 基本语法 索引器使用 this 关键字定义,并且需要指定索引的类型和返回值类型。以下是一个简单的索引器实现示例,该示例创建了一个自定义的字 阅读全文
C#实现多态的过程中 overload 重载 与override 重写的区别
2025-02-10 16:17 by 钟铧若岩, 8 阅读, 收藏, 编辑
摘要:
在 C# 实现多态的过程中,overload(重载)和 override(重写)是两种不同的机制,它们有明显的区别,下面从定义、语法、调用时机、应用场景等方面详细阐述: 定义与语法 重载(Overload) 定义:方法重载是指在同一个类中,允许存在多个同名的方法,但这些方法的参数列表必须不同(参数的 阅读全文
请举一个C# func与action的例子
2025-02-10 16:12 by 钟铧若岩, 9 阅读, 收藏, 编辑
摘要:
在 C# 中,Func 和 Action 都是委托类型,它们简化了委托的使用,能让你更方便地将方法作为参数传递。下面分别介绍它们的使用场景并给出示例。 Action 委托 Action 委托用于封装不返回值(即返回类型为 void)的方法。它有多个重载版本,最多可以接受 16 个输入参数。 示例代码 阅读全文
什么是匿名类,有什么好处,请用C#举一个例子
2025-02-10 16:03 by 钟铧若岩, 13 阅读, 收藏, 编辑
摘要:
匿名类的定义 在 C# 中,匿名类是一种无需显式定义类型名称的类。它允许你在需要创建一个简单的数据容器时,快速定义并实例化一个类,而不必事先声明一个正式的类类型。匿名类通常使用 new 关键字和对象初始化器来创建,编译器会根据初始化器中的属性自动推断出匿名类的结构。 匿名类的好处 代码简洁性:当你只 阅读全文
c#中堆与栈的区别
2025-02-10 14:50 by 钟铧若岩, 8 阅读, 收藏, 编辑
摘要:
在 C# 中,堆(Heap)和栈(Stack)是内存管理的两种重要方式,它们在内存分配、数据存储、生命周期和性能等方面存在显著区别,以下是详细介绍: 1. 内存分配方式 栈 栈内存由操作系统自动进行分配和释放。当一个方法被调用时,系统会为该方法的局部变量、参数等在栈上分配内存空间;当方法执行结束后, 阅读全文
TCP三次握手、四次挥手
2025-02-07 18:19 by 钟铧若岩, 33 阅读, 收藏, 编辑
摘要:
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。三次握手和四次挥手是 TCP 协议建立和断开连接的重要过程,下面详细介绍。 TCP 三次握手 目的 三次握手的主要目的是在客户端和服务器之间建立可靠的连接,确保双方 阅读全文
c#实现读写文件有哪些实现方式
2025-02-07 17:12 by 钟铧若岩, 20 阅读, 收藏, 编辑
摘要:
在 C# 中,实现读写文件有多种方式,下面将分别介绍常见的几种读写文件的方法,包括使用 File 类、FileStream 类、StreamReader 和 StreamWriter 类以及 FileInfo 类等。 1. 使用 File 类 File 类是一个静态类,提供了许多便捷的方法来进行文件 阅读全文
c#什么是死锁,怎么避免死锁
2025-02-07 17:05 by 钟铧若岩, 27 阅读, 收藏, 编辑
摘要:
什么是死锁 在 C# 多线程编程里,死锁指的是两个或多个线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,这些线程都将无法继续执行下去。 死锁产生的必要条件 互斥条件:线程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个线程占用。如果此时还有其它线程请求该资源,则请求 阅读全文
c#多线程互斥有哪些方法
2025-02-07 16:28 by 钟铧若岩, 14 阅读, 收藏, 编辑
摘要:
在 C# 多线程编程中,当多个线程访问共享资源时,可能会出现数据不一致或其他并发问题,这时就需要使用互斥机制来确保同一时间只有一个线程可以访问共享资源。以下是几种常见的 C# 多线程互斥方法: 1. lock 语句 lock 语句是 C# 中最常用的实现线程互斥的方式,它基于 Monitor 类实现 阅读全文
为什么要多线程,c#多线程编程有哪些实现方式,怎么中止线程
2025-02-07 16:17 by 钟铧若岩, 9 阅读, 收藏, 编辑
摘要:
为什么要使用多线程 在软件开发中使用多线程有诸多好处,以下是详细解释: 提高程序性能:现代计算机通常配备多核处理器,单线程程序只能利用一个核心的计算资源,而多线程程序可以将不同的任务分配到多个核心上并行执行,充分发挥多核处理器的优势,从而显著提高程序的整体运行效率。例如,在数据处理应用中,一个线程负 阅读全文
c# 集合类有哪些方法
2025-02-07 11:16 by 钟铧若岩, 7 阅读, 收藏, 编辑
摘要:
在 C# 中,集合类主要分为泛型集合和非泛型集合,常见的集合类有 List<T>、Dictionary<TKey, TValue>、HashSet<T>、Queue<T>、Stack<T> 等,下面为你详细介绍这些集合类的常用方法 类型 添加 删除 查找 属性 List Add(); Insert( 阅读全文
判断两个变量的值是否相等
2025-02-07 10:32 by 钟铧若岩, 7 阅读, 收藏, 编辑
摘要:
using System; class Program { static void Main() { // 定义两个变量 int a = 10; int b = 10; // 使用 == 运算符判断两个变量的值是否相等 if (a == b) { Console.WriteLine("两个变量的值相 阅读全文
垃圾回收原理
2025-02-07 10:27 by 钟铧若岩, 11 阅读, 收藏, 编辑
摘要:
垃圾回收原理 基本概念:垃圾回收(Garbage Collection,GC)是一种自动内存管理机制,旨在识别和回收不再被程序使用的内存空间,以便这些空间能被重新利用。 工作原理 对象引用计数:一些早期的垃圾回收算法会为每个对象维护一个引用计数,记录有多少个变量或对象引用了它。当一个对象的引用计数变 阅读全文