.NET面试题总结

C#

浏览数:145

2019-9-18

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、ViewBag

10、MVC中过滤器

     问题:你用过过滤器吗?

    比如,我们经常使用授权过滤器

11、c#扩展方法如何写?

      静态 ,this

12、.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、Linq

22、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、有没有用过消息队列

     RabbitMQ

42、设计一个老鼠、猫和主人的程序,要求可扩展性强,老鼠的叫声惊动猫和主人

    真无趣的一道题,用事件

43、Vue权限管理,如何控制界面的显示

44、WCF的部署方式

     一般在IIS上,还有人部署在Window服务上

45、简介应用程序池

46、冒泡算法

      c#写一个,双层循环

47、简述应用程序域

48、数据库设计三范式

面试题可能会针对每个人,有所不同,但是最基础的面试题都一样。如果你把最基础的都答对,面试官试探的一些问题,也能答对,那么就是加分项。比如,大数据、串口编程,这些东西,我们可能平常接触不到,但某些公司可能要用到。没有涉及到很正常,我们涉及到的东西,面试官不一定听过,比如layui、.netcore、word插件。

 

作者:micDavid