一、C#委托Func、Action的区别

Func与Action作用几乎一样。只是

  • Func<Result>有返回类型;
  • Action<T>只有参数类型,不能传返回类型

例如Func<int>返回结果int;Action<int>参数int,无返回值

  Func<int,string>返回结果string,参数int;Action<int,string>两个参数:int,string

二、c#协变,逆变

直白的理解: 

“协变”->”和谐的变”->”很自然的变化”->string->object :协变。 

“逆变”->”逆常的变”->”不正常的变化”->object->string 逆变。 

三、MVC路由的理解

1、首先我们要理解MVC中路由的作用:url Routing的作用是将浏览器的URL请求映射到特定的MVC控制器动作。

2、当我们访问http://localhost:8080/Home/Index 这个地址的时候,请求首先被UrlRoutingModule截获,截获请求后,从Routes中得到与当前请求URL相符合的RouteData对象, 将RouteData对象和当前URL封装成一个RequestContext对象,然后从Requestcontext封装的RouteData中得到 Controller名字,根据Controller的名字,通过反射创建控制器对象,这个时候控制器才真正被激活,最后去执行控制器里面对应的 action。

四、什么是索引,索引的分类及区别

索引:

索引分为聚集索引和非聚集索引,区别如下:

1、聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个,这个跟没问题没差别,一般人都知道。

2、聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续

五、netcore中间件的使用方式几种

Use、Run、Map三种

Run用于注册终端中间件,Use用来注册匿名中间件,UseWhen、Map、MapWhen用于创建管道分支。
UseWhen进入管道分支后,如果管道分支中不存在短路或终端中间件,则会返回到主管道。Map和MapWhen进入管道分支后,无论如何,都不会再返回到主管道。
UseWhen和MapWhen基于逻辑条件来创建管道分支,而Map基于请求路径来创建管道分支,且会对HttpRequest.Path和HttpRequest.PathBase进行处理。

六、vue的v-show、v-if的区别

实现本质方法区别

  • vue-show本质就是标签display设置为none,控制隐藏
  • vue-if是动态的向DOM树内添加或者删除DOM元素
  • 一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

七、truncate,delete的区别及二者速度比较

truncate全部删除表了,没有日志记录不可恢复

有ROLLBACK命令DELETE可被恢复

truncate速度大于delete

八、TPL是什么

任务并行库,TPL主要覆盖了三大使用场景,数据并行、任务并行和流水线,TPL以其高度的封装特性,隐藏了并行编程里复杂的处理,使得开发人员可以以较低的门槛进行并行编程

九、left join 和right join性能区别

百度:

如果两个表一样大,效率是bai一样的。
如果du两个表的数据量相差很大,那效率上是有区zhi别的dao。
一般来说,小表去join大表,效率要比大表去join小表高的多。

所以写SQL尽量先查询和过滤数据量小的表,再去join大的表。

十、导入一个很大的excel数据到数据库里面,怎么处理比较快

同事思路参考:导入最关键的还是插入库的操作,这个操作是最耗时的,要在这个上面下功夫,看你用的什么ORM,最后都是生成SQL,所以最好的优化方式时优化生成的sql,或者直接sql语句,另一种解决方法是通过非关系型数据库暂存,异步执行到关系数据库

十一、谈一谈对DDD的理解?

DDD,领域驱动设计。主要分为战略设计和战术设计
战略方面,通过事件风暴进行领域模型的划分,划分出核心域,子域,支撑域,定义通用语言,划分出界限上下文。
战术方面,ddd将架构分层,“松耦合,高内聚”是架构设计的整体思想。按照DDD思想,可以分为领域层,基础设施层,应用层,接口层。

接口层为前端用户提供api接口。
应用层是对领域服务的编排,所有的相关逻辑都是放在了应用层,
基础设施层可以放一些第三方的服务,数据库连接等内容。
领域层只是放了实体,因为暂时还不是特别理解领域层的服务和事件都应该写什么),包括实体,值对象,聚合根,领域服务,领域事件等内容。

十二、ASP.NET Core 比 ASP.NET 更具优势的地方是什么?

跨平台,ASP.NET Core 可以运行在 Windows 、Linux 和 MAC 系统上;
对框架本安装没有依赖,所有依赖都跟程序本身在一起;
ASP.NET Core 处理请求的效率更高,进而可以处理更多的请求;
ASP.NET Core 具有更多的安装配置方法

十三、

asp.net core 主要的特性有哪些?
依赖注入。
日志系统架构。
引入了一个跨平台的网络服务器,kestrel。可以没有iis, apache和nginx就可以单独运行。
可以使用命令行创建应用。
使用AppSettings.json 来配置工程。
使用start up来注册服务。
更好的支持异步编程。
支持web socket和signal IR。
对于跨网站的请求的预防和保护机制

十四、Asp.Net Core中有哪些异常处理的方案

1.继承Controller,重写OnActionExecuted
2.使用 ActionFilterAttribute。
3.使用 IExceptionFilter
4.使用ExceptionHandler.
5.自定义Middleare处理

十五、

介绍ASP.NET Core中服务的生命周期?
Singleton --单例模式
Scoped --作用域,每一个请求,都创建一个服务的实例。所有同一个请求中的中间件、MVC控制器,等等,都会得到一个相同的服务实例
Transient --短暂的,服务每次被请求的时候,都会创建一个服务实例

 

十六、

什么是依赖注入
依赖注入是一个过程,就是当一个类需要调用另一个类来完成某项任务的时候,在调用类里面不要去new被调用的类的对象,
而是通过注入的方式来获取这样一个对象

控制反转是什么
控制反转(Inversion of Control,缩写为IoC)是面向对象编程中的一种设计原则。控制反转是一种设计思想而依赖注入是这种思想的具体实现

十七、什么是aop

面向切面编程-通过预编译方式和动态代理实现程序功能的统一维护的一种技术.比较常见的场景是:日志记录,错误捕获、性能监控等

Vue常见面试题:

1、SPA 单页面的理解,它的优缺点分别是什么

SPA( single-page application )仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转;取而代之的是利用路由机制实现 HTML 内容的变换,UI 与用户的交互,避免页面的重新加载

优点:

用户体验好、快,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染;
基于上面一点,SPA 相对对服务器压力小;
前后端职责分离,架构清晰,前端进行交互逻辑,后端负责数据处理;

缺点:

初次加载耗时多:为实现单页 Web 应用功能及显示效果,需要在加载页面的时候将 JavaScript、CSS 统一加载,部分页面按需加载;
前进后退路由管理:由于单页应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理;
SEO 难度较大:由于所有的内容都在一个页面中动态替换显示,所以在 SEO 上其有着天然的弱势

 2、v-show 与 v-if 有什么区别?

v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 的 “display” 属性进行切换。

v-if 是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的

v-if 适用于在运行时很少改变条件,不需要频繁切换条件的场景;v-show 则适用于需要非常频繁切换条件的场景。

3、computed 和 watch 的区别和运用的场景?

computed: 是计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值;

watch: 更多的是「观察」的作用,类似于某些数据的监听回调 ,每当监听的数据变化时都会执行回调进行后续操作;

4、谈谈你对 Vue 生命周期的理解

Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模版、挂载 Dom -> 渲染、更新 -> 渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。

 
posted on 2020-05-08 18:08  花开花落-2014  阅读(609)  评论(0编辑  收藏  举报