自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(197)
  • 收藏
  • 关注

原创 C#.NET log4net 详解

log4net 是 .NET 平台上非常成熟的日志组件,源自 Java 世界的 log4j。它功能丰富、性能高、配置灵活,是企业应用中常见的日志框架之一。

2025-07-05 11:19:24 63

原创 C#.NET 匿名对象详解

匿名对象(Anonymous Types)是一种在编译时由编译器自动生成、但在源码中没有显式命名的引用类型,用来快速封装一组只读属性。它们最常见的场景是在 LINQ 查询中临时投影数据,但也可用于任何需要临时封装数据的地方。

2025-07-03 07:11:31 417

原创 C#.NET NLog 详解

NLog 是 .NET 平台上最流行的开源日志框架之一,特色是 灵活的配置、丰富的输出目标(Target),以及 高性能 的异步写入能力。适用场景:从控制台、文件、数据库、网络 到 ElasticSearch、Seq、Azure Table Storage 等各种日志收集后端。支持文件、数据库(SQL/NoSQL)、控制台、邮件、Elasticsearch 等 50+ 内置目标,并可通过插件扩展

2025-07-02 08:08:30 590

原创 C#.NET SimpleInjector 详解

Simple Injector 是一个专注于高性能、易用性和可测试性的 .NET 依赖注入(DI)容器,支持 .NET Framework、.NET Core、Xamarin 等多平台。设计原则:简单、快速、可预测。它通过编译时及运行时验证帮助早发现配置错误,并力求将依赖解析的开销降到最低。

2025-07-01 07:38:54 881

原创 C#.NET Ninject 详解

Ninject 是一个轻量级、易扩展的开源 .NET 依赖注入(DI)容器,适用于 .NET Framework、.NET Core、Xamarin 等多平台。设计目标:简单直观、可测试、高可扩展性,支持多种绑定策略和拦截器(AOP)。

2025-06-30 07:04:25 685

原创 C#.NET System.Text.Json 详解

System.Text.Json 是 .NET Core 3.0+ 和 .NET 5+ 平台自带的高性能 JSON 序列化/反序列化库,位于 System.Text.Json 命名空间,无需额外安装包(针对早期版本可安装 System.Text.Json)设计目标:极致性能、低分配、零依赖,并且与现代 .NET 平台深度集成,支持 UTF-8 原生处理、管道化处理、源生成等高级功能。相比 Newtonsoft.Json,更轻量、速度更快,但在灵活性和功能丰富度(如动态 LINQ to JSON)上略

2025-06-28 09:14:39 357

原创 C#.NET Newtonsoft.Json 详解

Newtonsoft.Json(又称 Json.NET)是 .NET 生态中最流行的 JSON 序列化/反序列化库,支持 .NET Framework、.NET Core、Mono、Xamarin 等多种平台。功能丰富:自动映射对象、LINQ to JSON、JSchema 验证、自定义转换、性能可调等

2025-06-27 07:26:58 911

原创 C#.NET Autofac 详解

Autofac 是一个成熟的、功能丰富的 .NET 依赖注入(DI)容器。相比于内置容器,它额外提供:模块化注册、装饰器(Decorator)、拦截器(Interceptor)、强o的属性/方法注入支持、基于约定的程序集扫描等特性。

2025-06-26 08:10:14 866

原创 C#.NET 依赖注入详解

在 C#.NET 中,依赖注入(Dependency Injection,简称 DI) 是一种设计模式,用于实现控制反转(Inversion of Control,IoC),以降低代码耦合、提高可测试性和可维护性。依赖注入是将一个对象的依赖(即它所需的其他对象或服务)通过外部提供(注入)的方式传递给它,而不是由对象自身创建或查找依赖。其核心思想是将对象的创建和依赖管理交给容器(IoC 容器),从而解耦代码。DI 是现代 .NET 开发(尤其是 ASP.NET Core)的核心特性之一,广泛应用于企业

2025-06-25 07:34:30 872

原创 C#.NET 中间件详解

中间件(Middleware) 是 ASP.NET Core 的核心组件,用于处理 HTTP 请求和响应的管道机制。它是基于管道模型的轻量级、模块化设计,允许开发者在请求处理过程中插入自定义逻辑。中间件广泛应用于日志记录、认证授权、异常处理、路由等场景。定义:中间件是处理 HTTP 请求和响应的组件,位于服务器接收到请求到最终返回响应之间的“管道”中。作用:可用于身份认证、授权、日志、静态文件、异常处理、CORS、压缩、路由等横切关注点。职责链:请求依次经过每个中间件,执行“前置逻辑”→调用下一

2025-06-24 08:00:46 445

原创 C#.NET in、out、ref详解

在 C# 中,in、ref 和 out 是用于修改方法参数传递方式的关键字,它们决定了参数是按值传递还是按引用传递,以及参数是否必须在传递前初始化。

2025-06-23 07:28:31 304

原创 C#.NET HttpClient 使用教程

HttpClient 是 .NET 中用于发送 HTTP 请求和接收 HTTP 响应的现代化 API,它取代了过时的 WebClient 和 HttpWebRequest 类。HttpClient 是 .NET Framework 4.5 + 和 .NET Core/.NET 5+ 中提供的、基于消息处理管道(message handler pipeline)的现代 HTTP 客户端库。相比早期的 HttpWebRequest,它更易用、支持异步、可扩展性强,并且在 .NET Core 中底层使用

2025-06-22 12:01:12 481

原创 .NET AOT 详解

AOT(Ahead-Of-Time Compilation)是一种将代码直接编译为机器码的技术,与传统的 JIT(Just-In-Time Compilation)编译方式形成对比。在.NET 中,AOT 编译可以在应用发布时将 IL(中间语言)代码转换为平台特定的机器码,而不是在运行时进行 JIT 编译。

2025-06-06 21:22:38 1142

原创 Linux epel-release 详解

epel-release是用于在基于Red Hat的Linux发行版(如RHEL、CentOS等)上启用EPEL(Extra Packages for Enterprise Linux)软件仓库的RPM包。EPEL由Fedora项目维护,提供不在标准仓库中的高质量开源软件包。安装epel-release会添加仓库配置文件和GPG密钥,确保软件包来源可信。它适用于RHEL、CentOS、Rocky Linux等系统,提供工具、开发模块和多媒体软件等。安装方法因发行版而异,可通过yum或dnf安装。安装后,可查

2025-06-01 10:33:08 924

原创 Linux 下如何查看进程的资源限制信息?

Linux 上的 cat /proc/$pid/limits 命令提供有关特定进程的资源限制的信息,其中 $pid 是相关进程的进程 ID (pid)。该文件是 `/proc 文件系统的一部分,该文件系统是一个虚拟文件系统,提供有关进程和系统资源的信息。

2025-05-31 15:30:28 741

原创 Linux gron 命令使用详解

gron 是一个独特的命令行工具,用于将 JSON 数据转换为离散的、易于 grep 处理的赋值语句格式。它的名字来源于 "grepable on" 或 "grepable JSON",主要解决在命令行中处理复杂 JSON 数据的难题。

2025-05-30 06:42:13 438

原创 php 设计模式详解

PHP 设计模式是对软件开发中常见问题的可复用解决方案,通过标准化的结构提升代码的可维护性、扩展性和复用性。

2025-05-29 06:30:27 1222

原创 Php JIT 使用详解

PHP 8 引入的 JIT(Just-In-Time 编译器) 是该版本的一个重要性能特性,首次让 PHP 有了运行时即时编译的能力,从解释型语言迈向了“编译执行”的方向。

2025-05-25 16:11:09 486

原创 Php 箭头函数详解

在 PHP 7.4 中,官方引入了 箭头函数(Arrow Functions),语法简洁、行为类似 JavaScript 的箭头函数,同时保留了 PHP 的闭包特性。

2025-05-22 07:14:14 554

原创 Linux yq 命令使用详解

yq 是一个轻量级、可移植的命令行 YAML 处理器,它允许使用类似于 jq 的语法读取、写入、更新、合并和过滤 YAML 数据。

2025-05-21 07:05:46 875

原创 Linux jq 命令使用详解

jq 是一个命令行 JSON 处理器,允许解析、过滤、转换和格式化 JSON 数据,提取特定字段或重构 JSON,高效使用 JSON 中的 API 或配置文件。

2025-05-20 20:54:58 1033

原创 Linux lscpu 命令使用详解

lscpu 是 Linux 中的一个命令行工具,它通过读取 /proc/cpuinfo 和 sysfs 来显示详细的 CPU 架构信息,包括架构、核心数、线程数、缓存、NUMA 节点等。

2025-05-13 07:27:58 555

原创 Java 原生异步编程与Spring 异步编程 详解

Java异步编程是现代高性能应用开发的核心技术之一,它允许程序在执行耗时操作(如网络请求、文件IO)时不必阻塞主线程,从而提高系统吞吐量和响应性。// 核心线程数// 最大线程数// 队列容量// 空闲线程存活时间// 指定线程池return "线程池中的任务";}, pool);├─ 创建任务│ ├─ runAsync() -> 无返回值│ └─ supplyAsync() -> 有返回值├─ 处理结果│ ├─ thenApply() -> 转换。

2025-05-11 19:12:10 1010

原创 Java Spring 常用注解详解

Spring框架中提供了大量注解用于简化开发、提升代码可读性、实现依赖注入、事务管理、等功能。@Retention:注解生命周期(源码/编译期/运行时)@Target:注解使用范围(方法、字段、类等):是否生成Javadoc@Inherited:注解是否可被子类继承return "线程池中的任务";}, pool);

2025-05-10 12:09:12 1081

原创 Java Enum 枚举使用教程

Java枚举(enum)是Java 5引入的一种特殊类,用于表示一组固定的常量(如状态、类型等)。它结合了类型安全、代码可读性和面向对象特性,广泛应用于Java项目中(如等)SUCCESS, // 枚举实例(本质是 public static final)FAILURE,PENDING// SUCCESS// SUCCESS// 0// 遍历枚举SUCCESS(200, "成功"),FAILURE(500, "失败");// 200// 失败PLUS {},

2025-05-09 07:46:51 301

原创 Linux tldr 命令使用详解

tldr代表Too Long;。它是一个由社区维护的类unix命令的简化和实用命令行示例集合。它为常用命令提供了简洁的、由示例驱动的帮助,而不像详细而冗长的手册页。

2025-05-08 07:20:32 423

原创 Java lombok 使用教程

Lombok是Java的一个 编译器插件,用于简化Java中常见样板代码(如、构造函数、toString等)的编写,提高开发效率。

2025-05-07 07:36:14 360

原创 php8 枚举使用教程

PHP从8.1开始原生支持枚举(enum),这是PHP向类型安全和现代语言特性迈进的重要一步。枚举可以定义一组有穷的、不可变的常量集合,常用于表示状态值、选项类型等。

2025-05-05 10:37:55 441

原创 Linux watch 命令使用详解

watch命令会以固定间隔(默认每 2 秒)重复运行给定命令,并在终端上显示其输出。它非常适合监控不断变化的输出,例如磁盘使用情况、内存使用情况、文件更改、服务状态等。使用来换行使用引号括起来。

2025-05-04 18:37:04 753

原创 Linux diff 命令使用详解

Linux中的diff命令用于逐行比较文件。它以各种格式报告差异,广泛应用于脚本编写、开发和补丁生成。

2025-05-02 18:51:57 996

原创 Linux btop 使用教程

btop是一个基于终端的现代系统资源监控器,具有美观的图形界面、响应快、功能丰富等特点。它支持查看CPU、内存、磁盘、网络、进程,并可以方便地筛选和管理进程。

2025-05-01 16:00:19 967

原创 Linux apropos 命令使用详解

apropos是一个模糊搜索工具,可以在所有man页面里搜输入的关键词。相比whatis只能搜命令名,apropos描述内容也能搜。

2025-04-30 07:34:10 207

原创 Linux whatis 命令使用详解

whatis命令用来快速查看某个命令的简要描述。它其实就是快速查man页的NAME部分。非常适合:想知道某个命令干什么不想翻长长的man页面快速回忆工具功能。

2025-04-29 06:51:50 330

原创 Linux man 命令使用教程

man manual(手册)命令用来查看Linux系统命令、函数、配置文件、系统调用等的官方文档。几乎所有标准程序和工具都有对应的man手册。man格式。

2025-04-28 07:48:10 752

原创 Go slice切片使用教程,一次通关!

Go中的 切片(slice) 是Go最强大、最常用的数据结构之一。它是对数组的轻量封装,比数组更灵活,几乎所有的集合处理都用切片来完成。切片是一个拥有 长度(len)和容量(cap) 的 动态数组视图。底层是一个数组,但可以动态扩容、共享数组。s := []int{} // 空切片,已初始化但无元素场景推荐写法初始化切片make([]T, len, cap) 或 []T{...}安全扩容不修改原切片复制切片清空切片s = s[:0] 或 var s []T。

2025-04-23 07:20:59 1053

原创 Java 泛型使用教程

Java泛型是JDK 5引入的一项特性,它提供了编译时类型安全检测机制,允许在编译时检测出非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型的好处:编译期检查类型安全避免强制类型转换(cast代码更通用,更易重用特性JavaC#类型安全✔️✔️灵活性❌(类型擦除限制)✔️(运行时保留泛型)泛型数组❌✔️基本类型支持❌(需包装)✔️泛型约束一般强大协变逆变复杂、通配符语法简洁、原生支持性能需装箱无装箱(对值类型更快)特性。

2025-04-21 07:25:09 720

原创 Java Streams 使用教程

Stream是Java 8引入的一个 函数式编程特性,可以让我们用声明式的方式操作集合(如等)。核心作用是:从集合中提取数据(流)对数据做中间操作(最后做终端操作(维度C# LINQ可读性简洁,但不支持 SQL 风格支持 SQL 风格,阅读更直观灵活性借助Collectors可以做很多操作LINQ本身功能更丰富多线程处理(粗粒度)PLINQ(细粒度)数据源支持Java 集合体系.NET 集合体系 + 数据库 IQueryable底层机制基于中间操作链和终结操作。

2025-04-20 17:30:06 512

原创 Linux cmp 命令使用详解

Linux中的cmp命令用于逐字节比较两个文件。它通常用于检查两个文件是否相同,如果不相同,则检查它们之间的差异。

2025-04-19 11:30:00 344

原创 C# 如何比较两个List是否相等?

在C#里,比较两个List是否相等,需要考虑多个方面,例如列表中的元素顺序、元素本身是否相等。实现Equals和方法set;set;obj)// 输出: True自定义比较器:set;set;x , Person?. Age == y?. Age;// 还有一种写法: // return obj.Name.GetHashCode() ^ obj.Age.GetHashCode();y)return x?.Name == y?

2025-04-17 07:15:58 487

原创 dotnet 值拷贝、浅拷贝、深拷贝详解

在.NET中,值拷贝(Value Copy)主要指的是将一个 值类型 的实例或对象的值复制到另一个变量中,使两个变量之间互不影响。// 值拷贝p2.X = 100;// 1// 100结构体之间的赋值是完全拷贝一份内存,不影响原来的结构体变量。

2025-04-16 06:47:43 369

空空如也

空空如也

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

TA关注的人

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