2021年最新 C# .net 面试题,月薪20K+中高级/架构师必看(八)

176、Mutex和lock有何不同?一般用哪一个作为锁使用更好?

177、线程池的优点有哪些?又有哪些不足?

https://blog.csdn.net/Design407/article/details/102741502

178、多线程和异步有什么关系和区别?

https://www.cnblogs.com/ShimizuShiori/p/12834874.html

179、 lock为什么要锁定一个参数,可不可锁定一个值类型?这个参数有什么要求?

锁引用类型,引用类型都是指向一个对象,不可以锁值类型,值类型在装箱时候会产生不同的对象。

180、字段与属性有什么异同?

https://www.cnblogs.com/liuyaozhi/p/4919732.html

181、使用什么工具来调用存储过程?

182、&和&&的区别?

https://www.cnblogs.com/longyao/p/11347345.html

183、Session有什么重大BUG,微软提出了什么方法加以解决?

提出的解决办法:可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢

184、谈谈ERP、CRM、MES、OA类型系统的不同。

185、自己写过多线程组件吗?简要说明!

186、说说你最擅长的技术?并说说你是如何使用的?

187、网站优化:网站运行慢,如何定位问题?发现问题如何解决?

前端:1.减少http的请求,每次发送http请求都会消耗一定的时间。

           2.可以使用js缓存,浏览器缓存,能直接从缓存中读取数据,不在请求服务器。

           3.使用压缩后的css和js,避免css和js的重复使用,减少 js里面的循环次数。

           4.css放在在<head>里面,js放在页面的 底部。因为请求js文件很花费时间,如果放在<head>里面,会导致DOM树需要等待js文件加载完成。

后端:

           5.优化SQL,避免使用*查询,使用索引,避免sp中出现大量逻辑的事务,减少in或and和or的查询使用。

           6.使用memcache缓存,减少数据库的访问。

           7.减少代码的层级接口,避免循环嵌套,优化算法等等。

           8.读写分离,负载均衡,面向接口编程,降低耦合性。

188、关于服务器端 MVC 架构的技术实现,您是怎样理解的?这种架构方式有什么好处?您在项目中是如何应用这一架构的?

189、关于代码优化你怎么理解?你会考虑去代码重构吗?

190、数据库调优/优化经验(后端工程师非常常见)

https://www.cnblogs.com/zoro-zero/p/13497938.html

191、IIS的工作原理?

1.当客户端发送http request时,服务端的http.sys拦截到这个请求。

   2.http.sys联系was向配置存储中心请求配置 信息。

   3.然后将请求传入iis的应用程序池。

   4.检查请求的后缀,启动aspnet_isapi.dll,这个dll是.net  framework里面的,也就是这一步进入了.net framework的管线范围。

   5.这个时候如果是webfom,开始执行页面的生命周期,(HttpRuntime>ProcessRequset>HttpContext>HttpHandler)。

      如果时MVC,则启动mvc的路由机制,根据路由规则为url来指定HttpHandler。

192、谈谈你觉得做的不错系统,大概介绍下用到了哪些技术?

193、MVC路由理解?

url routing的作用是将浏览器的url请求映射到指定的MVC控制器的动作。

当我们在浏览器请求一个URL地址时,这个请求首先会被URLRoutingModule所截获,截获请求后会从路由中得到与当前url向匹配的RounteData对象,

然后RounteData与url封装成一个RequestContext对象,可以从RequestContext中封装的RouteData中获取Contrller名字(这时Contoller才被真正的激活),然后再去执行控制器中的Action。

194、网站想要实现文件防盗链的功能,说说你的解决方案。

https://www.cnblogs.com/jingxiaoniu/p/6770477.html

195、你会采用什么样的策略和方法来实现系统缓存?

在ASP.NET 中缓存有页面缓存,数据源缓存,和一些自己定义的缓存!

对于那些整个页面不经常变化的我们可以使用页面缓存,而对于那些执行非常耗时的SQL 语句并且数据的及时性要求不高的我们可以使用数据源缓存。

对于页面缓存、数据源缓存等都不满足要求的情况下采用直接操作HttpRuntime.Cache 来自定义缓存策略。

如果需要用多台Web 服务器作为一个集群来承载网站的情况,则可以部署专门的分布式缓存服务器,比如Memcached。

196、在程序编码的时候,你会对Sql注入漏洞的防范采取什么样的措施?

尽量不要拼SQL语句!使用参数化查询或存储过程可以防止SQL注入攻击!在必须用SQL拼接的地方对用户输入的
内容进行检查、过滤。

197、如何提高页面的显示速度?假如一个页面的加载时间是10.89s,你会用什么样的方式进行优化?

https://blog.csdn.net/weixin_30251829/article/details/94873835

198、能否脱离VS用类似editplus的工具手写代码?你觉得如何才能提高代码的效率和性能?

199、有一个10个数的数组,计算其中不重复数字的个数。{3,5,9,8,10,5,3}

200、说出五个集合类

posted @ 2021-04-23 11:39  王春天  阅读(1351)  评论(0编辑  收藏  举报
云推荐