自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

微微的猪食小窝

诺贝尔文学奖读者;清华大学所在国家学生;世界500强简历投者;亿万彩票项目参与者;购物平台资深买者;前爱奇艺会员;0粉丝网红博主

  • 博客(104)
  • 收藏
  • 关注

原创 Migrations

Entity Framework的Migrations工具是一个版本控制和数据库迁移的系统,它允许开发者以编程方式管理数据库模式的变更。Migrations工具是Entity Framework中一个非常强大的特性,它使得数据库的版本控制和变更管理变得更加简单和可靠。通过使用这个工具,开发者可以确保他们的数据库始终与数据模型保持同步,从而避免了许多潜在的问题。

2024-04-25 22:22:19 250

原创 DI是什么(Dependency Injection)依赖注入

".Net DI" 通常指的是 ".NET 的依赖注入(Dependency Injection)"。依赖注入是一种实现控制反转(Inversion of Control, IoC)的技术,主要用于解耦应用程序的组件,使得它们之间的依赖关系更加灵活和可测试。

2024-04-18 21:26:26 216

原创 对象生命周期:Transient(瞬态)、Scoped(范围)、Singleton(单例)

在对象生命周期和依赖注入(DI)的上下文中,特别是在使用如Microsoft.Extensions.DependencyInjection(.NET Core的DI容器)等框架时,对象的生命周期通常被划分为几个不同的类型:Transient(瞬态)、Scoped(范围)和Singleton(单例)。 选择正确的生命周期对于应用程序的性能、线程安全和资源管理至关重要。例如,如果你有一个需要频繁创建和销毁的昂贵资源(如数据库连接),使用Singleton可能是一个好主意,以避免不必要的开销。相反,

2024-04-17 21:36:42 280

原创 无法将 null 字面量转换为非 nul 的引用类型

如果一个引用类型变量被声明为非可空的,但你却试图将它赋值为 null,编译器就会抛出这个错误。这个错误信息“无法将 null 字面量转换为非 nul 的引用类型”通常出现在编程时,特别是在使用 C# 或类似的强类型语言时。:虽然这不是推荐的做法,但在某些情况下,你可以通过在项目文件中设置 disable 来禁用可空引用类型的检查。通常,尽量使你的代码能够处理 null 值是一个好的做法,这样可以避免在运行时出现空引用异常。)来提供一个默认值。来声明变量为可空的。

2024-04-16 22:45:11 274

原创 委托 lambda linq之间的演变过程

委托是 C# 中用于定义方法签名和回调函数的机制。Lambda 表达式提供了一种更简洁的方式来定义匿名函数,并且可以作为委托的实例使用。LINQ 利用了 Lambda 表达式的特性,提供了一种声明式编程模型来查询各种数据源。

2024-04-13 17:07:27 263

原创 .Net 里面WhenAll的解释和用法

在.NET中,WhenAll 是一个与异步编程相关的扩展方法,它属于 System.Threading.Tasks 命名空间下的 TaskExtensions 类。这个方法主要用于处理一组 Task 对象,并等待它们全部完成。当所有任务都完成时,WhenAll 将返回一个包含所有任务结果的 Task 对象。

2024-04-11 20:26:51 476

原创 异步编程的概念 以及async和await的工作原理

async和await是C# 5.0及更高版本中引入的关键字,用于简化异步编程。它们的工作原理可以概括为以下几点:

2024-04-10 22:40:26 1479

原创 .Net 中关于Task的介绍

在.NET中,Task 是一个表示异步操作的对象,它是 System.Threading.Tasks 命名空间中的核心类。Task 类用于封装一个操作,这个操作可能是一个方法、一个函数、一个委托或一个表达式,它可以在后台线程上异步执行,而不会阻塞调用线程。在这个示例中,我们创建了一个 Task 来在后台线程上执行一些工作,并且使用 await 关键字来等待任务完成。这允许我们在任务执行期间继续执行其他代码(如果有的话),并在任务完成后继续执行后续代码。

2024-04-10 20:44:36 607

原创 .Net语言中的StringBuilder:入门到精通

StringBuilder 是一个强大的类,用于在 .NET 中构建和处理可变长字符串。通过理解和熟练掌握其用法和最佳实践,你可以编写出更高效、更可维护的代码。在编写涉及大量字符串操作的代码时,应考虑使用 StringBuilder 以提高性能和响应速度。

2024-04-09 22:31:12 403

原创 .NET ManagedThreadId用法

在.NET中,ManagedThreadId 是一个属性,它属于 System.Threading.Thread 类。这个属性用于获取当前托管线程的唯一标识符。在.NET应用程序中,当你需要识别或跟踪特定的线程时,ManagedThreadId 可以非常有用。

2024-04-09 22:07:07 375

原创 .Net HttpClient应用

HttpClient 提供了一个高级别的 API,用于向 Web 服务发送请求并接收响应,同时隐藏了很多底层的细节,如套接字管理和 HTTP 协议的实现。在上面的示例中,我们创建了一个 HttpClient 实例,然后使用 GetAsync 方法发送一个异步 GET 请求到指定的 URI。异步编程:HttpClient 的方法(如 GetAsync、PostAsync 等)都是异步的,应该使用 await 关键字来调用它们,以避免阻塞调用线程,并提高应用程序的响应性和吞吐量。

2024-04-08 22:07:24 247

原创 .net WriteAllText方法

需要注意的是,File.WriteAllText 方法不会抛出异常,如果写入操作成功,它会返回 void。然后,我们使用 File.ReadAllText 方法读取文件内容,并将其输出到控制台以验证写入操作是否成功。其中 encoding 是一个 System.Text.Encoding 类型的参数,它定义了用于写入文件的字符编码(例如 Encoding.UTF8 或 Encoding.ASCII)。在.NET中,File.WriteAllText 是一个静态方法,属于 System.IO.File 类。

2024-04-08 21:14:12 276

原创 无法直接启动带有”类库输出类型“的项目。若要调试此项目,请向引用库项目的此解决方案中添加可执行项目将此可执行项目设置为启动项目,

为了调试类库项目,你需要创建一个可执行项目(如控制台应用程序、Windows 窗体应用程序或 ASP.NET 项目等),并在这个项目中引用你的类库。然后,你可以设置这个可执行项目为启动项目,并通过它来运行和调试类库中的代码。当你尝试直接启动一个类库(Class Library)项目时,你会遇到这样的错误消息,因为类库项目本身不生成可执行文件(如 .exe 文件),它们只是包含可以被其他程序或应用程序引用的代码。

2024-04-07 22:18:01 384

原创 java设计模式课后作业(待批改)

此文章仅记录学习,欢迎各位大佬探讨①使用类来封装对象的属性和功能;②掌握类变量与实例变量,以及类方法与实例方法的区别;知识回顾详情见OOP课件实验内容在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。并创建一个对象验证。Teacher类、类、类和主类T3。要求(1)Teacherage),并且有个teaching()方法,在teaching()方法中输出“上课......”的信息。(2)类是Teacherage)

2024-03-06 21:45:12 629

原创 java接口(interface)的编写以及实现(implements)

在接口内部,可以添加常量、方法或默认方法(从 Java 8 开始)等元素。一个类可以同时实现多个接口,使用逗号分隔每个接口的名称。任何实现了接口的类都必须提供接口中定义的方法的实现。这将成为我们要创建的接口所在的类文件。对于常量,只需直接声明变量并赋予初值即可。对于方法,则需要指定返回类型和参数列表。接口之间也可以相互继承,形成接口的继承结构。接口不能被实例化,因此无法通过。若想提供默认实现,可以使用。首先定义一个新的文件并使用。运算符来创建接口的对象。在该文件中,使用关键字。最后,保存并编译该文件。

2024-03-06 21:32:27 640

原创 Java 数组(详细)

数组是序排列的数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型创建数组对象会在内存中开辟一整块连续的空间数组的长度一旦确定,就不能修改。

2024-03-02 21:26:34 996

原创 switch case 语句(详细)

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch 语句是非常的基础的知识,掌握起来也不难掌握,语法比较简单。但大部分人基本是知其然,不知其所以然。譬如 早期JDK只允许switch的表达式的值 int及int类型以下的基本类型,后期的JDK却允许匹配比较 字符串、枚举类型。switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

2023-10-24 14:53:32 1974

原创 java运算符(算数、关系、逻辑、条件、赋值)

对常量和变量进行操作的符号称为运算符,参与运算的数据称为操作数。共有五种:算数(自增,自减特殊)运算符、关系(比较) 运算符、逻辑运算符、 条件运算符、赋值运算符。

2023-10-23 12:05:05 623

原创 构造方法及其重载(详细)

构造方法(constructor)也叫构造器,用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

2023-10-19 18:50:18 618 1

原创 Java的Scanner 类

next() 与 nextLine() 区别next():1、一定要读取到有效字符后才可以结束输入。2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。next() 不能得到带有空格的字符串。nextLine():1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。2、可以获得空白。

2023-10-17 17:26:30 105

原创 windows DOM 命令手册(详细)

win + R > cmd > Enter # 打开 dos 窗口win + R > devmgmt.msc > Enter # 打开设备管理器win + R > services.msc > Enter # 打开服务管理器

2023-10-14 16:45:49 284

原创 2023前端面试系列-- Vue 篇

MVVM,是的简写,其本质是MVC模型的升级版。其中Model代表数据模型,View代表看到的页面,ViewModel是View和Model之间的桥梁,数据会绑定到ViewModel层并自动将数据渲染到页面中,视图变化的时候会通知ViewModel层更新数据。以前是通过操作DOM来更新视图,现在是数据驱动视图。

2023-02-15 17:54:32 1237 1

原创 什么是分层架构

分层架构是将软件模块按照水平切分的方式分成多个层,一个系统由多层组成,每层由多个模块组成。同时,每层有自己独立的职责,多个层次协同提供完整的功能。比如,我们经常提到的MVC架构,就是一种非常典型非常基础的分层方式。分层设计的本质其实就是将复杂问题简单化,基于单一职责原则让每层代码各司其职,基于“高内聚,低耦合”的设计思想实现相关层对象之间的交互。从而,提升代码的可维护性和可扩展性。

2022-11-28 19:41:51 2032 1

原创 JavaScript 获取元素的8种方法

文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展置标语言的标准编程接口。简单理解就是 DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。我们用JavaScript对网页进行的所有操作都是通过DOM进行的。

2022-11-28 13:02:37 1581

原创 cache--存储器系统

分配给Cache的地址存放在一个相联存储器(CAM)中,CPU发生访存请求时,会先让CAM判断所要访问的数据是否在Cache中,如果命中就直接使用。这个判断的过程就是Cache地址映射,这个速度应该尽可能快。当Cache数据已满,并且出现未命中情况时,就要淘汰一些老的数据,更新一些新的数据进入Cache。选择淘汰哪些数据的方法就是淘汰算法。使用Cache改善系统性能的主要依据是程序的局部性原理。1.2.Cache原理、命中率、失效率。1.3.Cache存储器的映射机制。1.5.Cache存储器的写操作。

2022-11-28 12:45:56 727

转载 十大经典排序算法动画,看我就够了!

我们来数数,排序后的数组应该是[ 2,3,4,5,5,8 ],5 的排名是第五名,那 4 的排名是第几名呢?但是如果数据经过桶的划分之后,桶与桶的数据分布极不均匀,有些数据非常多,有些数据非常少,比如[ 8,2,9,10,1,23,53,22,12,9000 ]这十个数据,我们分成十个桶装,结果发现第一个桶装了 9 个数据,这是非常影响效率的情况,会使时间复杂度下降到 O(nlogn),解决办法是我们每次桶内排序时判断一下数据量,如果桶里的数据量过大,那么应该在桶里面回调自身再进行一次桶排序。

2022-11-26 17:28:44 2397

原创 互联网面试——.Net 面试题

HttpHandler 是一个低级请求和响应 API,用于为传入的 Http 请求提供服务。ASP.NET 收到的每个传入 Http 请求最终都由实现 HttpHandler 的类的实例处理。.NET Framework 便于开发人员开发、运行和部署控制台应用程序、窗口窗体应用程序、Web 应用程序、Web 服务、窗口服务等应用程序。它还提供了创建可用于分布式计算架构的可共享组件的环境。类库公共语言运行时 (CLR)动态语言运行时 (DLR)应用程序域运行时主机。

2022-11-26 16:47:57 724

转载 一文搞定Base64编码原理足矣

把图片丢进浏览器,打开sources能看到一长串字符串,这是图片的Base64编码。这一长串编码到底是怎么生成的呢?我们接下来探索一下base64编码的原理。

2022-11-26 00:47:42 774

原创 七个方面!API接口设计需要注意的问题

就是当一个操作多次执行所产生的影响均与一次执行的影响相同。POST用于新增加数据,比如,新增一个交易订单,这肯定不能是幂等的DELETE用于删除数据,一个数据删除多次和删除一次的结果是一样的,所以,是幂等的PUT用于全部数更新,所以,是幂等的。PATCH用于局部更新,比如,更新某个字段 cnt = cnt+1,明显不可能是幂等操作。

2022-11-25 14:01:06 740

原创 推荐10个实用的程序员开发常用工具

编辑支持文档、数据表、绘图(思维导图、流程图、画板)三大文稿类型,具备 Markdown、代码块、LaTeX 公式、PlantUML等专业编辑能力,同时支持本地视频、Office 文件、PDF 文件等内容的上传与在线预览,可满足多种专业岗位需求,让创作更高效。snipaste是一款截图+贴图工具,按住F1快捷键就可轻松截图,还可调整窗口大小和移动截图窗口,除此之外,我还经常使用snipaste量尺寸,按c快捷键获取指定位置的色值,用图钉固定在某个窗口查看等等,是一款非常Nice的屏幕截图工具!

2022-11-25 13:33:07 2723

原创 20+Vue面试题整理

MVVM是缩写,也就是把MVC中的Controller演变成ViewModel。Model层代表数据模型,View代表UI组件,ViewModel是View和Model层的桥梁,数据会绑定到viewModel层并自动将数据渲染到页面中,视图变化的时候会通知viewModel层更新数据。一个组件被复用多次的话,也就会创建多个实例。本质上,这些实例用的都是同一个构造函数。如果data是对象的话,对象属于引用类型,会影响到所有的实例。所以为了保证组件不同的实例之间data不冲突,data必须是一个函数。

2022-11-24 23:07:00 542

转载 .NET开发--MVC中如何使用ViewBag和操作方法参数向视图传递数据

ASP.NET MVC控制器向视图传递数据。

2022-11-24 22:27:51 1916

原创 vue-router的两种模式的区别

因此可以说,hash 模式和 history 模式都属于浏览器自身的特性,Vue-Router 只是利用了这两个特性(通过调用浏览器提供的接口)来实现前端路由。如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成。模式即可,只需在后端(Apache 或 Nginx)进行简单的路由配置,同时搭配前端路由的 404 页面支持。前端路由的核心,就在于 ——一般场景下,hash 和 history 都可以,除非你更在意颜值,

2022-11-24 15:20:59 849

原创 .NET软件开发工程师面试题(下)

答:C#中面向对象是一种编程思想所谓封装也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性实现继承与接口继承。实现继承是指直接使用基类的 属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。

2022-11-24 14:55:34 1343

原创 .NET软件开发工程师面试题(上)

答:string str = null; 定义了一个字符串对象,赋值为null也就是没有分配内存string str=””分配了内存空间 ,值为空string.empty 是系统预定义的一个空字符串对象(长度为0的字符串对象)已经分配内存了答:C#仅是语言层面的,所以C#本身是存在指针类型的,可以引用指针。但在.net开发时,凡是使用指针、开辟内存等不受托管处理的都为非安全开发。也就是说,指针之类的引用在.net中必须加在unsafe关键词之词。而且在编译时也必须选中允许非安全编译才可以通过。如果不在uns

2022-11-21 22:48:06 2700

原创 2023最新Vue 面试题+详解答案

本文整理了高频出现的 Vue 相关面试题并且附带详解答案难度分为简单 中等 困难 三种类型 大家可以先不看答案自测一下自己的 Vue 水平哈 如果对答案有不一样见解的同学欢迎评论区补充讨论@微微的猪食小窝本文由微微的猪食小窝原创指令本质上是装饰器,是 vue 对 HTML 元素的扩展,给 HTML 元素增加自定义功能。vue 编译 DOM 时,会找到指令对象,执行指令的相关方法。

2022-11-21 22:21:47 1935

原创 Vue 生命周期方法有哪些 一般在哪一步发请求

在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。可以在钩子函数 created、beforeMount、mounted 中进行异步请求,因为在这三个钩子函数中,data 已经创建,可以将服务端端返回的数据进行赋值。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。发生,在当前阶段,真实的 Dom 挂载完毕,数据完成双向绑定,可以访问到 Dom 节点。在这一步,实例仍然完全可用。

2022-11-21 21:58:26 858

原创 原生AJAX

AJAX全称为,就是异步的JS 和 XML.通过AJAX无刷新的获取数据.AJAX不是新的编程语言,而是一种将现有标准组合在一起使用的新方式.如何创建一个原生的ajax上代码!!!//第一步 先城建一个ajax的核心 XMLHttpRequest//第二步 使用open 创建请求 第一个参数是请求方式 第二个是请求的地址 第三个是同步或者异步//如果是post请求 必须要写请求头xhr.setRequestHeader('') //设置请求头。

2022-11-20 22:49:33 1927

原创 CEAC之《职业素养》

本文由原创收录于专栏。

2022-11-20 00:10:32 1936

原创 企业中WEB前端项目开发流程

程序测试员主要就是测试寻找程序还存在的bug,一般来说刚编码完成的程序都是存在问题的,就需要测试人员反复不断的测试并将存在问题的测试结果交给编码人员进行bug的修复。这个环节是由项目经理完成,项目经理首先和客户进行交流,了解客户的需求,然后分析项目的可行性,如果项目可以被实现,项目经理写出项目需求文档交给设计师完成后续的开发。程序的维护是整个项目的最后一个阶段,但也是耗时最多,成本最高最高的的一个阶段。就是在开发的时候调用的后台接口是后台测试的接口 项目上线后要把请求的接口替换成上线的域名。

2022-11-19 23:44:48 1824

Go语言基本知识和概念

Go语言基本知识和概念如下: Go语言又称Golang,由Google公司于2009年发布。 Go语言是一门静态的、强类型的、编译型编程语言,为并发而生,所以天生适用于并发编程(网络编程)。 Go语言的目标是提供一种简单、高效的编程语言,用于处理大规模的软件工程。 Go语言具有高效的并发支持、良好的内存管理、清晰的语法等特点,因此深受程序员们的喜爱。 Go语言支持Windows、Linux等多个平台,也可以直接在Android和iOS等移动端执行。

2024-04-08

空空如也

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

TA关注的人

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