C#&.Net面试题
文章平均质量分 89
随着软件开发行业的快速发展,.NET作为微软开发的一套强大的应用程序开发框架,在业界的应用越来越广泛。为了满足广大开发者在求职过程中对于.NET技术面试的需求,本专栏特别整理了一系列高质量的.NET面试题,旨在帮助求职者更好地准备面试,提升面试成功
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
code36
程序员,通常被称为软件开发人员或编码员,是专门从事计算机编程的专业人员。他们使用各种编程语言来设计、开发、测试和维护软件应用程序、操作系统、数据库和网站等
展开
-
.NET/C#、Netcore、数据库、Redis 、RabbitMQ、kafka、Docker、Nginx、分布式、网络、多线程⾯试题汇总
Docker 面试题。原创 2024-07-07 14:34:52 · 446 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET常见面试题 001
从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。unsafe:非托管代码。不经过CLR运行。RTTI:类型识别系统。代码后植。都不能。动态获取程序集信息Web应用,类似Thread Pool,提高并发性能。虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。原创 2024-07-07 13:50:14 · 305 阅读 · 0 评论 -
网络篇面试题 001
建立和关闭的操作,减少浪费,节约时间。不过这里存在一个问题,存活功能的探测周期太长,还有就是它只是探测TCP 连接的存活,属于比较斯文的做法,遇到恶意的连接时,保活功能就不够使了。发送端和接收端都有一个固定大小的缓冲空间,为了防止发送端发送数据的速度太快导致接收端缓冲区溢出,发送端只能发送接收端可以接纳的数据,为了达到这种控制效果,TCP。发送端和接收端都有一个固定大小的缓冲空间,为了防止发送端发送数据的速度太快导致接收端缓冲区溢出,发送端只能发送接收端可以接纳的数据,为了达到这种控制效果,TCP。原创 2024-07-27 17:07:11 · 27 阅读 · 0 评论 -
分布式面试题 001
中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。,为了支持幂等,支持重复执行,简单的处理方法是,先查询下一些关键数据,判断是否已经执行过,在进行业务处理,就可以了。它很简单,容易理解,不需要太多的努力来构建,所有参与者都是松散耦合的,因为他们彼此之间没有直接的耦合。模式是一种分布式异步事务,一种最终一致性事务,是一种柔性事务,有两种不同的方式来实现saga。在高并发场景的架构里,幂等性是必须得保证的。原创 2024-07-27 16:12:07 · 30 阅读 · 0 评论 -
Redis 面试题锦集005
集群网络断开,但是与其他集群角色之间的网络没有问题,还要满足上面那些情况,但是一旦出现就会引起很严重的后果,数据不一致。感知到那个客户端宕机,会自动删除对应的临时顺序节点,相当于自动释放锁,或者是自动取消自己的排队。节点的时候,属于崩溃的情况。下,哪怕你自己认为不完全切中题意的也可以说说,面试官不喜欢会打断你的,你的目的是让面试。创建一个全局的路径,这个路径就可以作为一个名字,指向集群中的集群,提供的服务的地址,或。这样的设计有效的减轻了服务端的压力,不然对于更新非常频繁的节点,服务。原创 2024-07-27 13:45:53 · 25 阅读 · 0 评论 -
Zookeeper 面试题 001
例如设置参考IP(如网关IP),当心跳线完全断开时,2个节点都各自ping一下 参考IP,不通则表明断点就出在本端,不仅"心跳"、还兼对外"服务"的本端网络链路断了,即使启动(或继续)应用服务也没有用了,那就主动放弃竞争,让能够ping通参考IP的一端去起服务。一后,如果是集群先于client发现,那就会出现上面的情况。一般出现这种情况的几率很小,需要leader节点与Zookeeper集群网络断开,但是与其他集群角色之间的网络没有问题,还要满足上面那些情况,但是一旦出现就会引起很严重的后果,数据不一致。原创 2024-07-27 13:50:27 · 26 阅读 · 0 评论 -
Nginx 面试题 001
其次,采用独立的进程,可以让进程互相之间不会影响 ,如果一个进程发生异常退出时,其它进程正常工作, master。服务器,能够同时处理大量的并发请求。CPU 亲缘性的绑定选项,我们可以将某一个进程绑定在某一个核上,这样就不会因为进程的切换带来Cache 的失效。)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。庞大的第三方模块,当然,公开的第三方模块也如官方发布的模块一样容易使用。的高并发特性,因此,许多高流量的网站都倾向于开发符合自己业务特性的定制模块。原创 2024-07-27 12:01:30 · 30 阅读 · 0 评论 -
数据库-MySQL面试题系列 006
此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。第一范式:列不可再分 第二范式:行可以唯一区分,主键约束 第三范式:表的非主属性不能依赖与 其他表的非主属性 外键约束 且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式 建立第一第二范式上。例如,用户表中既有用户的登录信息又有用户的基本信息,可以将用户表拆分成两个单独的表,甚至放到单独的库做分库。可以对视图进行增,改,查,操作,试图通常是。原创 2024-07-27 11:03:05 · 83 阅读 · 0 评论 -
RabbitMQ面试题系列 004
RabbitMQ是一款开源的消息代理软件(亦称面向消息的中间件),实现了高级消息队列协议(AMQP)。它使用Erlang语言编写,具有高可用性、高吞吐量和灵活的路由功能。解耦:系统间通过消息队列进行通信,降低了系统间的耦合度。异步处理:提高系统响应速度和处理能力,消息生产者无需等待消息消费者处理完成。流量削峰:通过消息队列的缓冲作用,平滑处理瞬时高峰流量。RabbitMQ集群是指将多个RabbitMQ节点(实例)组合在一起,共同处理消息,以提高系统的可用性、可靠性和扩展性。原创 2024-07-20 10:16:21 · 23 阅读 · 0 评论 -
数据库-SQL必须掌握面试题系列 001
JOIN子句用于根据两个或多个表之间的相关列来组合它们。它用于合并两个表或从中检索数据。原创 2024-07-13 19:07:35 · 19 阅读 · 0 评论 -
高并发系统建设经验总结
前言早期从事运单系统的开发和维护工作,从最早的日均百万单,到日均千万单,业务的快速发展再加上外卖业务的特点是,业务量集中在午高峰和晚高峰两个高峰期,所以高峰期并发请求量也是水涨船高,每天都要面对高并发的挑战。拿运单系统来举例,日常午高峰核心查询服务的 QPS 在 20 万以上,Redis 集群的 QPS 更是在百万级,数据库 QPS 也在 10 万级以上,TPS 在 2 万以上。在这么大的流量下,主要的工作也是以围绕如何建设系统的稳定性和提升容量展开,下面主要从基础设施、数据库、架构、应用、规范这几原创 2024-06-26 19:51:25 · 710 阅读 · 0 评论 -
RabbitMQ面试题系列 003
RabbitMQ就是 AMQP 协议的 Erlang 的实现(当然 RabbitMQ 还支持 STOMP2、 MQTT3 等协议 ) AMQP 的模型架构 和 RabbitMQ 的模型架构是一样的,生产者将消息发送给交换器,交换器和队列绑定。RabbitMQ 确保持久性消息能从服务器重启中恢复的方式是,将它们写入磁盘上的一个持久化日志文件,当发布一条持久性消息到持久交换器上时,RabbitMQ 会在消息提交到日志文件后才发送响应。,作为去重和幂等的依据(消息投递失败并重传),避免重复的消息进入队列;原创 2024-07-10 21:28:26 · 31 阅读 · 0 评论 -
Redis 面试题锦集004
Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的Key-Value DB。原创 2024-07-10 21:15:17 · 25 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET Core 005
创建一个自定义的中间件,捕获异常并处理。这样可以在请求管道中的任何位置进行全局异常处理。try// 处理异常,例如记录日志等// 返回自定义错误响应在ASP.NET Core中,服务的生命周期管理是通过依赖注入(DI)系统来实现的。ASP.NET Core支持三种主要的服务生命周期,每种生命周期都适用于不同的场景和需求。依赖注入(Dependency Injection,简称DI)是一种软件设计模式,旨在实现组件之间的松耦合。原创 2024-07-10 00:08:03 · 153 阅读 · 0 评论 -
数据库-SqlServer面试题系列 001
一、数据库基础知识(通用)篇1.说说主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属 性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键:是最小超键,即没有冗余元素的超键。 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个 主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。2.为什么用自增列作为主键?如果我们定义了主键原创 2024-07-06 14:09:23 · 73 阅读 · 0 评论 -
RabbitMQ面试题系列 002
RocketMQ 的路由发现不是实时的,NameServer 不会主动向客户端推送,而是客户端定 时拉取主题最新的路由,然后更新。step1:调用 RouterInfoManager 的方法,从路由表 topicQueueTable、brokerAddrTable、 filterServerTable 分别填充信息;step2:如果主题对应的消息为顺序消息,则从 NameServerKVconfig 中获取关于顺序消 息相关的配置填充路由信息;原创 2024-07-01 11:13:46 · 1011 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET Core 003
在ASP.NET Core中,服务的生命周期管理是通过依赖注入(DI)系统来实现的。ASP.NET Core支持三种主要的服务生命周期,每种生命周期都适用于不同的场景和需求。以下是ASP.NET Core中的服务生命周期:1、瞬态(Transient)生命周期// 瞬态服务在每次请求时都会创建新的实例,并在请求处理结束后被销毁。每次注入瞬态服务时,都会得到一个新的实例。适用于轻量级且不需要保持状态的服务。2、作用域(Scoped)生命周期。原创 2024-07-07 12:30:46 · 392 阅读 · 0 评论 -
docker 面试题
基础概念什么是Docker? 答:Docker是一个开源的容器化平台,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,从而在任何Docker运行的环境中实现一致的运行。 Docker容器和虚拟机的区别是什么? 答:Docker容器在操作系统级别进行虚拟化,共享宿主机的内核,而虚拟机在硬件级别进行虚拟化,拥有独立的内核。容器通常更轻量级、启动更快,资源占用更少。 什么是Docker镜像? 答:Docker镜像是一个轻量级、只读的模板,用于创建Docker容器。它包含运行容器所需的代码原创 2024-07-07 12:28:47 · 22 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET Core 004
(这里指的是4.x以下版本)是由 Microsoft 创建的开放源代码 Web 框架,助你使用 .NET 生成现代 Web 应用和服务。是一个成熟的框架,提供在 Windows 上生成基于服务器的企业级 Web 应用所需的服务。数百万开发人员在使用或使用过创建 Web 应用(使用人群多,代码完全开源)。ASP.NET Core 是对 ASP.NET 4.x 的重新设计,其中包括体系结构上的更改,产生了更精简、更模块化的框架。由CLR管理分配和释放的资源,也就是我们直接new出来的对象;原创 2024-07-07 12:27:12 · 426 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET常见面试题 002
委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。DataReader对象只是一次一笔向下循序的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序的内存中的,只能(通过游标)读取当前行的数据,而且这些数据是只读的,并不允许作其它的操作。深蓝色是C#的,浅蓝色是.Net的。GC是.Net的垃圾收集器,可以进行内存资源的回收,程序员无需关心资源的回收,当一个对象没有任何引用的时候就可以被回收了。原创 2024-07-03 22:22:57 · 629 阅读 · 0 评论 -
数据库-MySQL面试题系列 004
什么是分库分表简单来说,就是指通过某种特定的条件,将我们存放在同⼀个数据库中的 数据分散存放到多个数据库(主机)上⾯,以达到分散单台设备负载的效 果。分库分表的⽬的是为了解决由于数据量过⼤⽽导致数据库性能降低的问 题,将原来单体服务的数据库进⾏拆分.将数据⼤表拆分成若⼲数据表组 成,使得单⼀数据库、单⼀数据表的数据量变⼩,从⽽达到提升数据库 性能的⽬的。单机存储容量遇到瓶颈连接数,处理能⼒达到上限.原创 2024-07-03 07:59:19 · 1050 阅读 · 0 评论 -
数据库-MySQL面试题系列 003
MySQL Server架构⾃顶向下⼤致可以分⽹络连接层、服务层、存储引擎层 和系统⽂件层。原创 2024-07-03 01:18:13 · 696 阅读 · 0 评论 -
数据库-MySQL面试题系列 005
InnoDB的⻚和操作系统的⻚⼤⼩不⼀致,InnoDB⻚⼤⼩⼀般为16K,操作 系统⻚⼤⼩为4K,InnoDB的⻚写⼊到磁盘时,⼀个⻚需要分4次写。如果存储引擎正在写⼊⻚的数据到磁盘时发⽣了宕机,可能出现⻚只写了 ⼀部分的情况,⽐如只写了4K,就宕机了,这种情况叫做部分写失效 (partial page write),可能会导致数据丢失。双写缓冲区 Doublewrite Buffer。原创 2024-07-03 00:44:44 · 812 阅读 · 0 评论 -
数据库-MySQL面试题系列 002
Page是整个InnoDB存储的最基本构件,也是InnoDB磁盘管理的最⼩单 位,与数据库相关的所有内容都存储在这种Page结构⾥。Page分为⼏种类型,常⻅的⻚类型有数据⻚(B+tree Node)Undo⻚ (Undo Log Page)系统⻚(System Page) 事务数据⻚(Transaction System Page)等Page 各部分说明。原创 2024-07-02 00:30:59 · 828 阅读 · 0 评论 -
Redis 面试题锦集003
缓存穿透:指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这 将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。解决方案:1.查询返回的数据为空,仍把这个空结果进行缓存,但过期时间会比较短;2.布隆过滤器:将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的 数据会被这个 bitmap 拦截掉,从而避免了对 DB 的查询。缓存雪崩:设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到 DB,DB 瞬时压力过重雪崩。原创 2024-07-01 10:47:08 · 880 阅读 · 0 评论 -
kafka面试题系列 001
Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动, 这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析, 或者装载到hadoop、数据仓库中做离线分析和挖掘。Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘, 以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失。包括收集各种分布式应用的数据,生产各种操作的集中反 馈,比如报警和报告。原创 2024-06-29 09:25:13 · 545 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET常见面试题 003
进程:进程是比线程大的程序运行单元,都是由操作系统所体会的系统运行单元,一个程序中至少要有一个进程,一个进程中,至少要有一个线程线程:线程的划分尺度要比进程要小,进程拥有独立的内存单元,线程是共享内存,从而极大的提高了程序的运行效率,同一个进程中的多个线程可以并发执行。事件基于委托,事件的本质是委托字段的包装器,对委托字段的访问起限制作用,RANK 函数的语法是:在分组内,按照特定的顺序排名,序号从 1 依次递增,排名函数以 tie 为单位,每个 tie 中的所有行的排名是相同的,排名可能是不连续的。原创 2024-06-28 13:34:22 · 674 阅读 · 0 评论 -
RabbitMQ面试题系列 001
这种模式,才是所谓的RabbitMQ的高可用模式,跟普通集群模式不一样的是,你创建的queue,无论元数据(元数据指RabbitMQ的配置数据)还是queue里的消息都会存在于多个实例上,然后每次你写消息到queue的时候,都会自动把消息到多个实例的queue里进行消息同步。: 在消息进入队列之前,通过交换器来路由消息。rabbit_amqqueue_process:负责协议相关的消息处理,即接收生产者发布的消息、向消费者交付消息、处理消息的确认(包括生产端的 confirm 和消费端的 ack) 等。原创 2024-06-28 13:30:31 · 317 阅读 · 0 评论 -
Redis 面试题锦集002
列表类型是用来储存多个有序的字符串,列表中的每个字符串成为元素,一个列表最多可以储存 2 ^ 32 - 1 个元素,在 Redis 中,可以队列表两端插入和弹出,还可以获取指定范围的元素列表、获取指定索引下的元素等,列表是一种比较灵活的数据结构,它可以充当栈和队列的角色。集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中不允许有重复的元素,并且集合中的元素是无序的,不能通过索引下标获取元素,Redis 除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集。二进制:图片、音频、视频。原创 2024-06-28 13:27:57 · 631 阅读 · 0 评论 -
数据库-MySQL面试题系列 001
(RC和RR级别工作)InnoDB的MVCC,是通过在每行记录后面保存系统版本号(可以理解为事务的ID),每开始一个新的事务,系统版本号就会自动递增,事务开始时刻的系统版本号会作为事务的ID。哈希索引用索引列的值计算该值的hashCode,然后在hashCode相应的位置存执该值所在行数据的物理位置,因为使用散列算法,因此访问速度非常快,但是一个值只能对应一个hashCode,而且是散列的分布方式,因此哈希索引不支持范围查找和排序的功能。数据库中的所有记录,都会被查询出来,载入到 JVM 的内存中。原创 2024-06-24 23:14:15 · 951 阅读 · 0 评论 -
.NET/C#⾯试题汇总系列:常⻅的算法
质数也成为素数,质数就是这个数除了1和他本身两个因数以外,没有其他因数的数,叫做质数,和他相反 的是合数, 就是除了1和他本身两个因数以外,还友其他因数的数叫做合数。摘要: 以往我们都是肯定绞尽脑汁,肯定什么循环,元素⼤⼩,什么因素都考虑进去。但是现在采⽤Linq可 以很好的解决这个问题。找出两个或多个数组的相同项。原创 2024-06-22 13:25:21 · 238 阅读 · 0 评论 -
数据库-综合⾯试题汇总系列 001
其实这个不是⼀定的,有些场景下,⼩系统或者没什么⽤的表,不设置主键也没关系,mysql最好是⽤⾃增 主键,主要是以下两个原因:如果定义了主键,那么InnoDB会选择主键作为聚集索引、如果没有显式定义 主键,则innodb 会选择第⼀个不包含有NULL值的唯⼀索引作为主键索引、如果也没有这样的唯⼀索引, 则innodb 会选择内置6字节⻓的ROWID作为隐含的聚集索引。MySQL ⽬前不⽀持 PL/SQL 的。由于最左前缀原则,在创建联合索引时,索引字段的顺序需要考虑字段值去重之后的个数,较多的放前 ⾯。原创 2024-06-22 13:24:33 · 627 阅读 · 0 评论 -
.NET/C#⾯试题汇总系列:基础语法
as在转换的同时判断兼容性,如果⽆法进⾏转换,返回位null(没有产⽣新的对象),as转换是否成功判 断的依据是是否位null is只是做类型兼容性判断,并不执⾏真正的类型转换,返回true或false,对象为 null也会返回false。位运算:(使⽤位运算逻辑并,两个位上的都为1才是1,其余都是0,判断是否等于0) 4&3相当于100&011 ,结果是000等于0,所以4是2的n次⽅ 5&4相当于101&100,结果是100不等于0,所以5不是2的n次⽅。原创 2024-06-22 13:31:39 · 893 阅读 · 0 评论 -
数据库-综合⾯试题汇总系列 002
关系是指多表在数据库中的关联。有4种关系。1对1,多对⼀,多对多,⼀对多。唯⼀标识⼀条记录,不能有重复的,不允许为空。表的外键是另⼀表的主键, 外键可以有重复的, 可以是空值。SQL(结构化查询语⾔)是⼀种设计⽤于检索和操作数据的数据库。它属于美国国家标准协会(ANSI)的⼀种标准,可⽤于执⾏Select(选择)、Update(更新)、Delete(删除)和Insert(插⼊)等数据任务。索引⽤于加速查询的性能。它可以更快地从表中检索数据。可以在⼀组列上创建索引。它是⼀个返回单个值的数学函数。原创 2024-06-23 17:28:48 · 1517 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET Core 002
实现特点: 让无状态的http请求,变的有状态,让第一次请求和第二次请求之间产生联系,第一次请求进入服务器,在服务器写入一组session,然后返回sessionId给客户端存在Cookie,第二次请求,从cookie中渠道SessionId,传递给服务器,服务器鉴别SessionId,如果是上一次来的SessionId,就认为之前来请求过;如果说查询出来的数据,只是做展示,不做增删改查,可以在查询的时候,增加AsNoTracking()方法,可以提高性能,可以避免在内存中存在副本;原创 2024-06-23 17:27:13 · 1031 阅读 · 0 评论 -
Redis 面试题锦集001
列表类型是用来储存多个有序的字符串,列表中的每个字符串成为元素,一个列表最多可以储存 2 ^ 32 - 1 个元素,在 Redis 中,可以队列表两端插入和弹出,还可以获取指定范围的元素列表、获取指定索引下的元素等,列表是一种比较灵活的数据结构,它可以充当栈和队列的角色。集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中不允许有重复的元素,并且集合中的元素是无序的,不能通过索引下标获取元素,Redis 除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集。二进制:图片、音频、视频。原创 2024-06-22 13:37:26 · 757 阅读 · 0 评论 -
.NET/C#⾯试题汇总系列:⾯向对象
静态⽅法和⾮静态变量不是同⼀⽣命周期,静态⽅法属于类,⾮静态变量属于具体的对象,静态⽅法和具 体的对象没有任何关联。接⼝可以继承接⼝,抽象类可以实现接⼝,抽象类可以继承实现类,但前提是实现类必须有明确的构造函 数。对象和引⽤时分不开的,对象⽣成⼀个地址,放在堆⾥⾯,引⽤则指向这个地址,放在栈⾥⾯。执⾏顺序:⽗类,⼦类,静态块,静态字段,⾮静态块,⾮静态字段,构造器,⽅法。⼀个是属性,⽤于存取类的字段,⼀个是特性,⽤来标识类,⽅法等的附加性质。接⼝是⼀种约束,描述类的公共⽅法/公共属性,不能有任何的实现。原创 2024-06-22 13:26:59 · 580 阅读 · 0 评论 -
.NET/C#⾯试题汇总系列:集合、异常、泛型、 LINQ、委托、EF
异常是⼀种耗费资源的机 制,每当异常被抛出时,异常堆栈将会被建⽴,异常信息将被加载,⽽通常这些⼯作的成本相对较⾼,并 且在尝试性类型转换时,这些信息都没有意义。定义委托基本上就是定义⼀个新 的类,所以可以在任何地⽅定义类的相同地⽅定义委托,也就是说,可以在另⼀个类的内部定义,也可以 在任何类的外部定义,还可以在名称控件中把委托定义为定义为顶层对象。⼀般来说,返回另外⼀个序列(通常为IEnumerable或 IQueryable)的操作,使⽤延迟执⾏,⽽返回单⼀值的运算,使⽤⽴即执⾏。,消耗的时间多⼀ 些。原创 2024-06-22 13:30:58 · 897 阅读 · 0 评论 -
.NET/C# ⾯试题汇总系列:ASP.NET Core 001
依赖注⼊是⼀个过程,就是当⼀个类需要调⽤另⼀个类来完成某项任务的时候,在调⽤类⾥⾯不要去new 被调⽤的类的对象,⽽是通过注⼊的⽅式来获取这样⼀个对象。⽐如A调⽤B,⽽B实现了接⼝C,那么在A⾥⾯⽤C定 义⼀个变量D,这个变量的实例不在A⾥⾯创建,⽽是通过A的上下⽂来获取。应⽤层是对领 域服务的编排,是很薄的⼀层(⽬前我⾃⼰的架构,应⽤的是cqrs,所有的相关逻辑都是放在了应⽤层, ⽽领域层只是放了实体,因为暂时还不是特别理解领域层的服务和事件都应该写什么)。都是⽤来向应⽤请求管道⾥⾯添加中间件的。原创 2024-06-22 13:27:30 · 687 阅读 · 0 评论 -
.NET/C#⾯试题汇总系列:ADO.NET、XML、 HTTP、AJAX、WebService
可以将http⾸部分为通⽤⾸部,请求⾸部,响应⾸部,实体⾸部通⽤⾸部表示⼀些通⽤信息,⽐如date表示报⽂创建时间,请求⾸部就是请求报⽂中独有的,如cookie,和缓存相关的如if-Modified-Since 响应⾸部就是响应报⽂中独有的,如set-cookie,和重定向相关的location,实体⾸部⽤来描述实体部分,如allow⽤来描述可执⾏的请求⽅法,content-type描述主题类型, content-Encoding描述主体的编码⽅式。确保你的应⽤程序允许连接池的使 ⽤。原创 2024-06-22 13:25:55 · 893 阅读 · 0 评论