.NET面试题整理
阅读原文时间:2022年04月02日阅读:1
  1. .NET、.NET Framework、.NET Core和C#的解释各是什么?

  2. ASP.NET MVC和ASP.NET Web API的区别是什么?

  3. C#中的委托是什么?事件是不是一种委托?

  4. 简述Private、Protected、Public和Internal修饰符的访问权限

  5. Override与重载的区别

    Override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。

    Override是进行基类中函数的重写。为了适应需要。

  6. 如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

    Server.Transfer

  7. CTS、CLS、CLR分别作何解释?

    CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

  8. 什么是装箱和拆箱?

    从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

  9. 什么是受管制的代码?

    Unsafe:非托管代码。不经过CLR运行。

  10. 什么是强类型系统?

    RTTI:类型识别系统。

  11. .NET中读写数据库需要用到那些类?他们的作用?

    DataSet:数据存储器。DataCommand:执行语句命令。DataAdapter:数据的集合,用语填充。

  12. 列举ASP.NET页面之间传递值的几种方式。

    1).使用QueryString, 如….?id=1; response. Redirect()….

    2).使用Session变量

    3).使用Server.Transfer

  13. 什么是Code-Behind技术?

    代码后植。

  14. 在.net中,配件的意思是?

    程序集。(中间语言,源数据,资源,装配清单)

  15. 常用的调用WebService的方法有哪些?

    1.使用WSDL.exe命令行工具。

    2.使用VS.NET中的Add Web Reference菜单选项

  16. .netRemoting 的工作原理是什么?

    服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。

  17. 在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。

    string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。

  18. 请详述在dotnet中类(class)与结构(struct)的异同?

    Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

  19. SQLSERVER服务器中,给定表table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号.

    Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate)FROM table1)

  20. 简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。

    WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。

  21. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。

    解1: select top 10 * from A where id not in (select top 30 id fromA)

    解2: select top 10 * from A where id >(select max(id) from (select top30 id from A )as A)

  22. 面向对象的语言三个特性

    封装、继承、多态。

  23. 能用foreach遍历访问的对象需要实现_接口或声明_方法的类型。

    答:IEnumerable 、 GetEnumerator

  24. GC是什么? 为什么要有GC?答:GC是垃圾收集器。

    程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()

  25. Strings = new String("xyz");创建了几个String Object?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

启动一个线程可以使用哪几种方式或那几个类?答:1.异步委托开启线程。2.通过Thread类开启线程。3.通过线程池开启线程。4.通过任务Task开启线程

  1. sleep()和 wait() 有什么区别?答:sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

构造器Constructor是否可被override?答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

  1. 是否可以继承String类?答:String类是final类故不可以继承。

try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?答:会执行,在return前执行。

31. 两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对?答:不对,有相同的hash code.

32..swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答:都可以

33.当一个线程进入一个对象的一个方法后,其它线程是否可进入此对象的这个方法?答:不可以,一个对象的方法只能由一个线程访问。

1.进程和线程的区别?答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。2.堆和栈的区别?a、存储栈:变量、对象的引用堆:实例对象b、速度栈:存取速度快堆:存取速度慢c、线程访问栈:每个线程都有一个栈区堆:所有线程共享一个堆区d、垃圾回收方面栈:比较频繁,值类型的值存储在里面,由操作系统自动分配释放。堆:不频繁,引用类型的值呈链式形式存储在里面,由程序员分配释放,如果不释放,程序结束时自动释放。3.成员变量和成员函数前加static的作用是什么?答:加个static就是静态变量或函数了,静态变量类不用实例化都可以调用,内存永驻,不会释放。4.向服务器发送请求有几种方式?答:常用:get,post,put,delete。不常用:patch,copy,head,lock,unlock等等。5.软件开发过程一般有几个阶段?每个阶段的作用?答:需求分析,架构设计,代码编写,QA(测试),部署。(回答这种问题结合日常一个项目形成的过程即可)6.在c#中using和new这两个关键字的意义一般有什么?答:using:引入名称空间或者使用非托管资源。new:新建实例或者隐藏父类方法7.什么叫做SQL注入,如何防止?请举例说明。答:利用sql关键字对系统进行攻击,比如--,where,1=1等。在我日常开发中,有2种解决方案,第一种:过滤关键字。第二种:参数化查询。8.什么是反射?答:动态获取程序集信息9.什么是虚函数?什么是抽象函数?答:虚函数(virtual):可有可没有实现的,子类可继承重写可不重写的函数。抽象函数(abstract):没有实现,必须公开,没有方法体,规定其非虚子类必须实现的函数,必须被重写。10.什么是XML?答:XML即可扩展标记语言。

简述private、protected、pubic、internal修饰符的访问权限

2020-01-10 关注 0 浏览118 1答案

ADO.Net中常用的对象有哪些?分别描述一下

2020-01-10 关注 0 浏览205 1答案

数据库操作的相关类有哪些?

2020-01-10 关注 0 浏览165 1答案

列举ASP.NET页面之间传递值的几种方式。

2020-01-10 关注 0 浏览152 1答案

C#中的委托是什么?事件是不是一种委托?事件和委托的关系。

2020-01-10 关注 0 浏览156 1答案

允许多个索引器参数?

2020-01-10 关注 0 浏览129 1答案

属性和public字段的区别是什么?调用set方法为一个属性设值,然后用get方法读取出来的值一定是set进去的值吗?

2020-01-10 关注 0 浏览96 1答案

谈谈你对三层架构的理解?

2020-01-10 关注 0 浏览206 1答案

什么是装箱(boxing)和拆箱(unboxing)? (*)

2020-01-10 关注 0 浏览99 1答案

CTS、CLS、CLR分别作何解释(*)把英文全称背过来。

2020-01-10 关注 0 浏览103 1答案

C#和.Net的关系。

2020-01-10 关注 0 浏览113 1答案

在dotnet中类(class)与结构(struct)的异同?

2020-01-10 关注 0 浏览94 1答案

C#支持多重继承么?

2020-01-10 关注 0 浏览130 1答案

C#中所有对象共同的基类是什么?

2020-01-10 关注 0 浏览97 1答案

通过超链接怎样传递中文参数?

2020-01-10 关注 0 浏览106 1答案

string、String;int、Int32;Boolean、bool的区别

2020-01-10 关注 0 浏览109 1答案

Server.Transfer和Response.Redirect的区别是什么?(常考)

2020-01-10 关注 0 浏览119 1答案

不是说字符串是不可变的吗?string s="abc";s="123"不就是变了吗?

2020-01-10 关注 0 浏览118 1答案

是否可以从一个static方法内部发出对非static方法的调用?

2020-01-10 关注 0 浏览106 1答案

说出一些常用的类、接口,请各举5个

编写一个单例(Singleton)类。

2020-01-10 关注 0 浏览117 1答案

什么是sql注入?如何避免sql注入?

2020-01-10 关注 0 浏览132 1答案

数据库三范式是什么?

2020-01-10 关注 0 浏览138 1答案

post、get的区别

2020-01-10 关注 0 浏览98 1答案

.Net、ASP.Net、C#、VisualStudio之间的关系是什么?

2020-01-10 关注 0 浏览89 1答案

AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?

2020-01-10 关注 0 浏览109 1答案

Application 、Cookie和 Session 两种会话有什么不同?

2020-01-10 关注 0 浏览131 1答案

开放式问题:你经常访问的技术类的网站是什么?

2020-01-10 关注 0 浏览100 1答案

如何提高.Net动态页面响应速度?

2020-02-11 关注 0 浏览171 1答案

.Net日志管理如何实现?支持系统日志和业务日志,方便排查故障?


.NET Core

第1题,什么是ASP net core?首先ASP net core不是 asp net的升级版本。它遵循了dot net的标准架构, 可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。 第2题,asp dot core有哪些好的功能?第一是依赖注入。第二是日志系统架构。第三是引入了一个跨平台的网络服务器,kestrel。可以没有iis, apache和nginx就可以单独运行。第四是可以使用命令行创建应用。第五是使用APP settings json file来配置工程。第六是使用start up来注册服务。第七是更好的支持异步编程。第八是支持web socket和signal IR。第九是对于跨网站的请求的预防和保护机制。 第3题,dot net core跟dot net比较有哪些更好的地方?第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。第三是dot net core处理请求的效率更高,能够处理更多的请求。第四是dot net core有更多的安装配置方法。 第4题什么是meta packages?Meta packages是指包含所有ASP dot net code依赖的一个包。叫做Microsoft.AspNetCore 第5题,don net core应用能够跟dot net 4.x架构一起工作吗?可以。Dot net core应用可以跟标准的dot net 库一起工作。 第6题,什么是dot net core的startup class?Startup class是dot net core应用的入口。所有的dot net core应用必须有这个class。这个类用来配置应用。这个类的调用是在program main函数里面进行配置的。类的名字可以自己定义。 第7题, Startup class的config service方法有什么作用?在这个方法里我们可以添加一些service进入依赖注入容器。 第8题,startup class的configure方法有什么作用?这个方法来定义整个应用如何响应HTTP请求。它有几个比较重要的参数,application builder,Hosting environment, logo factory, 在这里我们可以配置一些中间件用来处理路径,验证和session等等。 第9题,什么是中间件?中间件在这里是指注入到应用中处理请求和响应的组件。 第10题,application builder的use和run方法有什么区别?这两个方法都在start up class的configure方法里面调用。都是用来向应用请求管道里面添加中间件的。Use方法可以调用下一个中间件的添加,而run不会。 第11题,dot net core 管道里面的map拓展有什么作用?可以针对不同的路径添加不同的中间件。 第12题,dot net core里面的路径是如何处理的?路径处理是用来为进入的请求寻找处理函数的机制。所有的路径在函数运行开始时进行注册。主要有两种路径处理方式, 常规路径处理和属性路径处理。常规路径处理就是用MapRoute的方式设定调用路径,属性路径处理是指在调用函数的上方设定一个路径属性。 第13题,如何在dot net core中激活session功能?首先要添加session包. 其次要在config service方法里面添加session。然后又在configure方法里面调用usesession。 第14题,dot net core工程里面有多少个工程文件?global, launch setting,app settings,bundle config,bower, package。 第15题,什么是dot net core里面的tag helper?Tag helper用来在服务器端使用Razor视图引擎创建html元素的。 第16题, 如何使tag helper在元素这一层上失效?使用叹号。 第17题,什么是Razor页面?是dot net core中支持ASP网页表格的一种开发模型。@page 作为页面的起始标志。 第18题,如何在Razor页面中实现数据模型绑定?使用bindproperty属性。 第19题, 如何在controller中注入service?在config services方法中配置这个service。在controller的构造函数中,添加这个依赖注入。 第20题,描述一下依赖注入后的服务生命周期?在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉。有三种服务的生命周期。单实例服务, 通过add singleton方法来添加。在注册时即创建服务, 在随后的请求中都使用这一个服务。短暂服务, 通过add transient方法来添加。是一种轻量级的服务,用于无状态服务的操作。作用域服务,一个新的请求会创建一个服务实例。使用add scoped方法来添加。


1、c#垃圾回收机制     从以下方面入手展开:  1、压缩合并算法   2、代的机制  3、GC调用终结器2、委托和事件     先说它的定义:委托的本质是类,类型安全的指针,然后从用途上考虑,事件是包装的委托,但事件不是委托3、c#索引    问题:索引可以是字符串吗?如何定义?    可以从索引的本质出发,就是从编译后的IL出发4、装箱和拆箱    值类型和引用类型之间的转换。频繁装箱和拆箱会导致系统性能降低,可考虑用泛型5、泛型   考得不多,但我们平常用的比较多。所以对泛型的一些东西需要了解,如泛型约束等6、c#如何调用c++ 的dll?   其实考查平台调用7、托管资源和非托管资源    问题:1、定义  2、如何释放   托管资源有GC释放,非托管资源由程序员自己释放,可以实现dispose接口8、MVC原理   路由机制,我觉得此题,根据自己的理解回答即可,可深入回答9、MVC中,后台向前台页面传对象的方式   强类型的模型绑定、ViewData、ViewBag10、MVC中过滤器     问题:你用过过滤器吗?    比如,我们经常使用授权过滤器11、c#扩展方法如何写?      静态 ,this12、.NET Core Api 安全验证以及中间件     采用jwt,生成token验证,比如我们用来错误处理的中间件,可以定义其它功能的中间件13、设计模式     常用的设计模式:工厂、抽象工厂、代理、适配器、模板、策略、单例、观察者等,根据自己在项目中的使用情况,可以谈一谈。14、单点登录15、聚集索引和非聚集索引16、char,varchar、nvarchar区别17、数据库死锁产生的原因及解决办法     两个进程各自占有资源,然后它们都还想得到对方的资源,而自己不肯释放资源。我觉得死锁的活该,谁叫你那么贪婪。18、有用过缓存吗?有用过redis吗?     你若回答用过,面试官继续追问;你若回答没用过,他会觉得这都没有用过。     缓存为了提高应用程序性能,因为请求数据库的次数少了。redis有很多特点:1、key-value   2、内存数据库,可以持久化到硬盘上  3、可以用作消息队列19、IOC、依赖注入、容器     IOC是一种思想,控制反转,反转的是对象的控制权,把生成对象的权利交到外部。比如在方法中要使用一个Student对象,有三种方法,1、用的时候,直接New一个对象  2、从方法参数中传入Student对象   3、从容器中获取一个Student对象20、大文件上传与下载,如何考虑?比如说50G的大文件21、Linq22、AOP    面向切面的编程。比如给每个Controller,添加日志功能,AOP是横向思维的一种体现23、SOA、Webservice、WCF    问题:Webservice与WCF区别    WCF是一个统一的框架,包括了remotting、Webservice,msmq,可以采用tcp和http等协议。也可以进行安全设置和验证。缺点:配置复杂24、有研究过Docker吗    Docker是一个平台,解决部署问题。需要理解Image(镜像)和Container的关系,了解运行机理25、有研究过微服务吗26、sql性能优化      查看sql执行计划、拆库、拆表、优化语句等27、你了解串口编程吗     就是控制摄像头之类的设备编程,得了解计算机的基本原理28、js字符串和数组相互转化29、请设计一个递归算法      比如5的阶乘,递归算法的一个要点是要设置结束条件,否则会栈溢出。30、如何考虑做一个网站31、线性表和链表的区别32、谈谈你对js闭包的理解33、多线程中的同步、异步、Task     异步主要为了提升吞吐量,防止阻塞。Task主要提供了一个管理线程的接口,比如获取线程的结果、状态、取消线程的执行等34、用过NoSql吗35、用过负载均衡吗36、大数据处理37、数据库表数据量特别大时,如何优化查询,提高速度?38、数据库中如何循环读取数据库表中的记录?      游标39、数据库中删除重复数据40、Session有什么缺点,微软如何改进   这是道笔试题,我们知道IIS会回收资源,所以可能会导致Session失效41、有没有用过消息队列     RabbitMQ42、设计一个老鼠、猫和主人的程序,要求可扩展性强,老鼠的叫声惊动猫和主人    真无趣的一道题,用事件43、Vue权限管理,如何控制界面的显示44、WCF的部署方式     一般在IIS上,还有人部署在Window服务上45、简介应用程序池46、冒泡算法      c#写一个,双层循环47、简述应用程序域48、数据库设计三范式 面试题可能会针对每个人,有所不同,但是最基础的面试题都一样。如果你把最基础的都答对,面试官试探的一些问题,也能答对,那么就是加分项。比如,大数据、串口编程,这些东西,我们可能平常接触不到,但某些公司可能要用到。没有涉及到很正常,我们涉及到的东西,面试官不一定听过,比如layui、.netcore、word插件。


非技术面试题

1.请你自我介绍一下你自己?

回答:

2.你最大的优点和缺点是什么?

回答:

3.谈谈你对公司加班的看法?

回答:

4.你对薪资的要求?

回答:

5.在未来的五年的时间内,你的职业规划是什么?

回答:

6.谈谈你的朋友对你的评价是什么?

回答:

7.你还有什么问题要问吗?

回答:

8.如果我们公司录用了你,但你却在工作后发现根本不适合这个职位,你怎么办?

回答:

9.在完成某项工作时,你认为自己的方式比领导要求的更好,你应该怎么做?

回答:

10.如果你出现工作失误,给公司造成经济损失,你认为该怎么办?

回答:

11.如果你做的一项工作受到上级表扬,主管却说是他做的,你该怎样?

回答:

12.谈谈你对跳槽的看法?

回答:

13.谈谈工作中你难以和同事、上级相处,你该怎么办?

回答:

14.你因工作比较突出,虽说得到领导肯定,但同事越来越孤立你,你该怎么办?

回答:

15.说说你选择这份工作的动机?

回答:

16.你能为我们公司带来什么呢?

回答:

17.说说喜欢这份工作的哪一点?

回答:

18.你是怎样看待学历和能力的?

回答:

总结:

————————————————

版权声明:本文为CSDN博主「Alice菌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_44318830/article/details/104269578