C#.NET笔试题
C#.NET笔试题
微软MVP Eleven
这个作者很懒,什么都没留下…
展开
-
2021-05-18 C#.NET面试题 三名传教士和三个野蛮人同在一个小河渡口,渡口上只有一条可容两人的小船。问题的目标是要用这条小船把这六个人全部渡到对岸去,条件是在渡河的过程中,河两岸随时都保持
三名传教士和三个野蛮人同在一个小河渡口,渡口上只有一条可容两人的小船。问题的目标是要用这条小船把这六个人全部渡到对岸去,条件是在渡河的过程中,河两岸随时都保持传教士人数不少于野蛮人的人数,否则野蛮人会把处于少数的传教士吃掉。这六个人怎样才能安全渡过去?1. 一名牧师和一个野蛮人过河;2. 留下野蛮人,牧师返回;3. 两个野蛮人过河;4. 一个野蛮人返回;5. 两名牧师过河;6. 一名牧师和一个野蛮人返回;7. 两名牧师过河;8. 一个野蛮人返回;9. 两个野蛮人过河;10. 一个野蛮人返回;11. 两个野原创 2021-05-18 23:33:06 · 73261 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 一张长方形的桌面上放n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与
一张长方形的桌面上放n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与原先某些硬币重叠。请证明整个桌面可以用4n个硬币完全覆盖要想让新放的硬币不与原先的硬币重叠,两个硬币的圆心距必须大于直径。也就是说,对于桌面上任意一点,到最近的圆心的距离都小于2,所以,整个桌面可以用n个半径为2的硬币覆盖。把桌面和硬币的尺度都缩小一倍,那么,长、宽各是原桌面一半的小桌面,就可以用n个半径为1的硬币覆盖。那么,把原来的桌子分割成相等原创 2021-05-18 23:30:58 · 72352 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?23次,因为分针要转24圈,时针才能转1圈,而分针和时针重合两次之间的间隔显然>1 小时,它们有23次重合机会,每次重合中秒针有一次重合机会,所以是23次重合时间可以对照手表求出,也可列方程求出...原创 2021-05-18 23:30:18 · 72379 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?3升装满;3升-〉5升(全注入);3升装满;3升-〉升(剩1升);5升倒掉;升-〉5 升(注入1升);3升装满;3升-〉5升;完成(另:可用回溯法编程求解)...原创 2021-05-18 23:29:36 · 71857 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 如何提高.NET的性能 ?
如何提高.NET的性能 ?1 使用异步方式调用Web服务和远程对象只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的ASP.NET 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。2 使用适当的Caching策略来提高性能3 判断字符串,不要用””比较。//避免if(strABC!=null && strABC!=””){}//推荐if(!strABC.IsNullOrEmpty){}4 页面优化5 用完马上关闭数据原创 2021-05-18 23:29:05 · 71961 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 NET下内存分配机制是什么?
NET下内存分配机制是什么?对于值类型的实例,CLR在运行时有两种分配方式:(1) 如果该值类型的实例作为类型中的方法(Method)中的局部变量,则该实例被创建在线程栈上;(2) 如果该值类型的实例作为类型的成员,则该实例作为引用类型(引用类型在GC堆或者LOH上创建)的实例的一部分,被创建在GC堆上。对于引用类型的实例,CLR在运行时也有两种分配方式:(1) 如果该引用类型的实例的Size<85000Byte,则该实例被创建在GC(Garbage Collection)堆上(当CLR在分配和回原创 2021-05-18 23:27:41 · 71961 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 Session有什么重大BUG,微软提出了什么方法加以解决?
Session有什么重大BUG,微软提出了什么方法加以解决?是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。...原创 2021-05-18 23:27:08 · 72022 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 工厂模式,简单工厂模式,抽象工厂模式三者有什么区别
工厂模式,简单工厂模式,抽象工厂模式三者有什么区别工厂模式,也叫做说虚构造器,在简单工厂中间插入了一个具体产品工厂,这个工厂知道产品构造时候的具体细节,而简单工厂模式的产品具体构造细节是在一个个if/else分支,或者在switch/case分支里面的。工厂模式的好处就在于将工厂和产品之间的耦合降低,将具体产品的构造过程放在了具体工厂类里面。在以后扩展产品的时候方便很多,只需要添加一个工厂类,一个产品类,就能方便的添加产品,而不需要修改原有的代码。而在简单工厂中,如果要增加一个产品,则需要修改工厂类,增加原创 2021-05-18 23:26:31 · 71997 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 基于REST 和基于SOAP的服务的区别是什么?
基于REST 和基于SOAP的服务的区别是什么?传统的 Web 服务通过简单对象访问协议 (SOAP) 进行消息的交换。它是一种用于一单向通信的消息格式,将消息组合成 XML 文档。描述了消息的传输,主要是通过 HTTP 协议。它定义一组 RPC 调用与 SOAP 消息互相转换的契约,将 RPC 调用封装为 SOAP 消息进行传输,并在服务器端反向转换为服务器端 RPC 调用,最终结果再以类似机制返回给客户端。基于 SOAP 的服务是重量级的服务,因为它有严格的约束和标准,开发人员需要深入了解基于 SO原创 2021-05-18 23:25:55 · 72097 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 为何说基于 SOAP 的服务是重量级的服务,Rest是轻量级的?
为何说基于 SOAP 的服务是重量级的服务,Rest是轻量级的?Restful Web服务是一种基于 REST 和 HTTP 协议的轻量级Web 服务,它把Web应用系统中的一切都当作是资源,它利用标准的HTTP请求方法(GET、POST、PUT 和 DELETE等),以URL的形式访问(功能调用)Web资源。JAVA中共有三种Web Service规范,分别JAX-WS(JAX-RPC)、JAX-RS、JAXM&SAAJ。其中有两种SOAP Web Service规范:JAX-WS和SAAJ。原创 2021-05-18 23:25:08 · 72023 阅读 · 0 评论 -
2021-05-18 C#.NET面试题 什么是依赖倒转IOC原则?
什么是依赖倒转IOC原则?在面向对象的系统里面,两个类之间可以发生三种不同的耦合关系:–零耦合关系:如果两个类没有耦合关系,就称之为零耦合。–具体耦合关系:具体耦合发生在两个具体的(可实例化 的)类之间,经出一个类对另外一个具体类的直接引用造成。–抽象耦合关系:抽象耦合关系发生在一个具体类和一个抽象类之间,使两个必须发生关系的类之间存有最大的灵活性。简单地说,依赖倒转原则要求客户端依赖于抽象耦合...原创 2021-05-18 23:24:18 · 72236 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 解释一下里氏替换原则?
解释一下里氏替换原则?里氏代换原则的严格表达是:一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它 根本不能察觉出基类对象和子类对象的区别。里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才能真正被复用,而衍生类也才能够在基类的基础上增加新的行为。...原创 2021-05-17 19:01:31 · 72322 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 什么是迪米特法则?
什么是迪米特法则?在软件系统中,一个模块设计得好不好的标志,就是该模块在多大的程度上将自己的内部数据和其他与实现有关的细节隐藏起来。这一概念就是“信息的隐藏”,或者叫做“封装”,也就是大家熟悉的软件设计的基本教义之一。信息的隐藏非常重要的原因在于,它可以使各个子系统之间脱耦。这种脱耦化可以有效地加快系统的开 发过程,因为可以独立地同时开发各个模块。它可以使维护过程变得容易,因为所有的模块都容易读懂,特别是不必担心对其他模块的影响。旦确认某一个模块是性能的障碍时,设计人员可以到对这个模块本身进行优化,而原创 2021-05-17 19:00:52 · 71927 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 软件架构的目标是什么?
软件架构的目标是什么?可靠性(Reliable):–软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。全性(Secure) :–软件系统所承担的交易的商业价值极高,系统的安全性非常重要。可伸缩性(Scalable) :–软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。可定制化(Customizable) :–同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。可扩展性(Extensible):原创 2021-05-17 19:00:19 · 71953 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 架构模式(Architectural Pattern) 设计模式(Design Pattern) 代码模式(Coding Pattern)的区别是什么?
架构模式(Architectural Pattern) 设计模式(Design Pattern) 代码模式(Coding Pattern)的区别是什么?区别:在于三种不同的模式存在于它们各自的抽象层次和具体层次。架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质。架构模式的好坏可以影响到总体布局和框架性结构。计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。码模式是原创 2021-05-17 18:59:46 · 72124 阅读 · 1 评论 -
2021-05-17 C#.NET面试题 什么是异步编程?
什么是异步编程?1.异步编程就是在方法调用后立即返回,不会阻塞后续代码执行。2.异步代码执行完毕后一般会通过回调的形式调用指定的方法,从而完成异步代码块与主代码块(主线程)的通讯。3.javascript中的异步编程能力都是由浏览器提供的,如setTimeout, XMLHttpRequest,还有DOM的事件机制,还有HTML5新增加的webwork, postMessage,等等很多。这些东西都有一个共同的特点,就是拥有一个回调函数。4.消除需要长时间执行的代码块阻塞整个代码的执行。5.延迟原创 2021-05-17 18:59:13 · 72586 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 请使用C#的相关知识,封装一个泛型的数据库访问查询方法;
请使用C#的相关知识,封装一个泛型的数据库访问查询方法; public T Get<T>(int id) where T : BaseModel { string ConnectionString = "Data Source=DESKTOP-63QE7M1; Database=CustomerDB; User ID=sa; Password=sa123; MultipleActiveResultSets=True"; T原创 2021-05-17 18:58:39 · 72065 阅读 · 1 评论 -
2021-05-17 C#.NET面试题 说说对http 301、302、303,304、400、405、415状态码的认识;
说说对http 301、302、303,304、400、405、415状态码的认识;301表示永久重定向(301 moved permanently),表示请求的资源分配了新url,以后应使用新url。302表示临时性重定向(302 found),请求的资源临时分配了新url,本次请求暂且使用新url。302与301的区别是,302表示临时性重定向,重定向的url还有可能还会改变。303 表示请求的资源路径发生改变,使用GET方法请求新url。她与302的功能一样,但是明确指出使用GET方法请求新ur原创 2021-05-17 18:58:03 · 73146 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 C#中Params是什么含义?有何用途?
C#中Params是什么含义?有何用途?Params 关键字在方法成员的参数列表中使用,为该方法提供了参数个数可变的能力它在只能出现一次并且不能在其后再有参数定义,之前可以实例:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{ class App { //第一个参数必须是整型,但后面的参数个数是可变的。 /原创 2021-05-17 18:57:25 · 72102 阅读 · 1 评论 -
2021-05-17 C#.NET面试题 PDB是什么东西? 在调试中它应该放在哪里?
PDB是什么东西? 在调试中它应该放在哪里?PDB是用于保存调试和项目状态信息的文件,在debug的时候将产生pdb文件,调试的时候应该放在和对应应用程序集相同目录。原创 2021-05-17 18:56:53 · 72249 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 CTS、CLS、CLR分别作何解释?
CTS、CLS、CLR分别作何解释?CTS:Common Type System 通用系统类型,一种确定公共语言运行库如何定义,使用和管理类型的规范。Int32、Int16->int、String->string、Boolean->bool,前者都是.Net中的类型,后者是C#中对这些类型的别名。CLR:Common Language Runtime 公共语言运行时,也即使项目运行需要的环境,就如我们人生存需要水。CLS:Common Language Specification原创 2021-05-17 18:56:15 · 72315 阅读 · 2 评论 -
2021-05-17 C#.NET面试题 谈谈对通信加密解密的理解。
谈谈对通信加密解密的理解。加密解密分为:对称可逆加密,非对称可逆加密两大类;可逆加密:加密后得到密文,可以通过加密后的密文得到原文;对称可逆加密特点:有一个公开的加密算法,任何人都知道;有一组Key,分为加密Key和解密Key,且两个Key是相同的;使用当前这个Key加密,可以得到一段密文;同时如果这段密文想要得到原文,也必须得使用这个Key才能解密; 此类被称为对称可逆加密,性能很高,但是安全性较差;只要是key被泄密了,密文就可以被攻破得到原文;因为加密算法是公开的;非对称可逆加密特点::有原创 2021-05-17 18:50:57 · 72202 阅读 · 2 评论 -
2021-05-17 C#.NET面试题 请列出常见的缓存方式,并简要概述其优缺点。
请列出常见的缓存方式,并简要概述其优缺点。客户端缓存,本地缓存,反向代理缓存,分布式缓存;原创 2021-05-17 17:46:24 · 72266 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 如果你的系统功能中出现性能问题,说说你的排查计划。
如果你的系统功能中出现性能问题,说说你的排查计划。通过浏览器访问,定位到性能最差(耗时最长)的请求,然后定位是代码层面的性能损失,还是数据库层面的性能损失,然后根据不同环节出现的性能问题再加以解决。...原创 2021-05-17 17:45:47 · 71775 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 说说你对数据库读写分离的理解
说说你对数据库读写分离的理解读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。为什么要分库、分表、读写分?单表的数据量限制,当单表数据量到一定条数之后数据库性能会显著下降。数据多了之后,对数据库的读、写就会很多。分库减少单台数据库的压力。接触过几个分库分表的系统,都是通过主键进行散列分裤分表的。这类数据比较特殊,主键就是唯一的获取该条信息的主要途径。比如原创 2021-05-17 17:45:14 · 72048 阅读 · 1 评论 -
2021-05-17 C#.NET面试题 谈谈对消息队列的理解
谈谈对消息队列的理解对于传统的应用程序,如果需要向另一个应用程序发送信息,只需要向其发出请求即可!这种方式虽然简单直接,但是如果应用程序2突然挂了,应用程序1可能会因为服务异常,而无法继续提供服务!设想一下,在应用程序1和应用程序2之间,插入一个消息服务,主要用于接受消息和发送消息,这样应用程序1和应用程序2之间的依赖关系就解耦了,同时也不会因为任何一方当服务不可用时,无法继续提供服务!其中插入的消息服务被称为消息队列!消息队列带来的优势:1.程序解耦:应用程序1和应用程序2在进行交互时,不会因为原创 2021-05-17 17:44:42 · 72224 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 你所了解的NoSql除了Redis还有哪些?
你所了解的NoSql除了Redis还有哪些?Memcache/MongoDb原创 2021-05-17 17:44:10 · 71806 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 说说对Redis的理解
说说对Redis的理解Redis是一种基于键值对的NoSQL数据库(非关系型数据库);是一个key-value存储系统Redis有两个特点:高能性 可靠性高能性:Redis将所有数据都存储在内存中,所有读写性特别高可靠性:Redis将内存中的数据利用RDB和AOF的形式保存到硬盘中,这样就可以避免发生断点或机器故障时内存数据丢失的问题功能应用:1.数据缓存功能,减少对数据库的访问压力2.消息队列功能(轻量级): Redis提供了发布订阅功能和阻塞队列功能3.计数器-应用保存用户凭证比如计算原创 2021-05-17 17:43:34 · 72067 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 说说什么事集群,什么是分布式。
说说什么事集群,什么是分布式。集群: 多台服务器来完成业务处理,业务请求来了以后,每一台服务器都能独立的完成业务计算;每个服务器都是独立的个体;多台服务器集合起来,通常也需要做负载均衡;分布式:多台服务器完成业务处理,也去请求来了以后,需要多个服务器合作来完成,比方说一个业务处理有5个环节,可能在处理的时候,A服务器处理第一个环节,B服务器处理第二个化解,C服务器处理第三个环节,D服务器处理第四个环节,E服务器来处理第五个环节;一个业务请求的5个环节,被五台服务器来合作完成了一个业务连,此类架构叫分布式原创 2021-05-17 17:43:03 · 72741 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 架构的5大要素是哪5大要素?
架构的5大要素是哪5大要素?1.高性能架构2.高可用架构3.伸缩性架构4.可扩展架构5.安全架构原创 2021-05-17 17:42:01 · 71929 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 说说什么是架构模式。
说说什么是架构模式。1,分层。2,分割。分层是对网站进行横向的切分,那么分割就是对网站进行纵向的切分。将网站按照不同业务分割成小应用,可以有效控制网站的复杂程度。3,分布式。在大型网站中,分层和分割后主要是为了让网站能够便于分布式部署,也就是将不同的模块部署到不同的服务器上。常用的分布式方案有如下几种。3.1 分布式应用和服务。3.2 分布式静态资源。3.3 分布式数据和存储3.4 分布式计算。3.5 此外还有分布式配置,分布式锁,分布式文件系统等。4,集群。分布式方案只是将不同的模原创 2021-05-17 17:41:30 · 72156 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 23种设计模式分别叫什么名称,如何分类?
23种设计模式分别叫什么名称,如何分类?分三类:创建型,行为型,结构型;创建型包含:1.单例模式2.工厂模式3.建造者模式4.原型模式5.工厂方法模式行为型包含:1.策略模式2.模板方法模式3.观察者模式4.迭代子模式5.责任链模式6.命令模式7.备忘录模式8.状态模式9.访问者模式10.中介者模式11.解释器模式结构型设计模式包含:1.适配器模式2.装饰器模式3.代理模式4.外观模式5.桥接模式6.组合模式7.享元模式...原创 2021-05-17 17:38:38 · 72509 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 简述Func<T>与Action<T>的区别?
简述Func与Action的区别?Func是有返回值的委托,Action是没有返回值的委托。原创 2021-05-17 17:36:56 · 71984 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 ORM中的延迟加载与直接加载有什么异同?
ORM中的延迟加载与直接加载有什么异同?延迟加载(Lazy Loading)只在真正需要进行数据操作的时候再进行加载数据,可以减少不必要的开销。原创 2021-05-17 17:36:23 · 71858 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 什么是反射?
什么是反射?程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例。...原创 2021-05-17 17:35:51 · 72445 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 能用foreach遍历访问的对象的要求?
能用foreach遍历访问的对象的要求需要实现IEnumerable接口或声明GetEnumerator方法的类型。原创 2021-05-17 17:35:06 · 72096 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 什么是MVC模式
什么是MVC模式MVC(Model View Controller)模型-视图-控制器aspx就是View,视图;Model:DataSet、Reader、对象;Controller:cs代码。MVC是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开。MVC最大的好处是将逻辑和页面分离。...原创 2021-05-17 17:34:25 · 72064 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 在.NET托管代码总我们不必担心内存泄漏,这是因为有了?
在.NET托管代码总我们不必担心内存泄漏,这是因为有了?GC 垃圾收集器。原创 2021-05-17 17:33:50 · 72184 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 在ASP.NET中所有的自定义用户控件都必须继承自?
在ASP.NET中所有的自定义用户控件都必须继承自?Control类原创 2021-05-17 17:33:12 · 72300 阅读 · 0 评论 -
2021-05-17 C#.NET面试题 ADO.NET常用对象有哪些?
ADO.NET常用对象有哪些?**Connection:**主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。**Command:**主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及调用存在数据库中的存储过程等。这个对象是架构在Connection 对象上,也就是Command: 对象是通过在Connection对象连接到数据原创 2021-05-17 17:31:26 · 71650 阅读 · 0 评论