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、数据库设计三范式