上市公司最近也不好过,这不HR还说之前有年终奖,如果效益好会有。而且HR拼命地压工资,恨不得刚毕业的薪水招个牛人。面试是现场面,一去就给你带进一个满是零食的会议室,这是想让你留下了吗?HR拿了公司的简历模板和一张面试题让填写,又是笔试题头大了。这里奉上他们笔试题,如果是回答的话还是简单的,要写出来还是有点苦难。
1、.NET Core跟.NE比较有哪些更好的地方。
2、什么是中间
3、.NetCore依赖注入的三种生命周期。
4、什么是接口
5、什么是委托
6、简述IOC容器
7、简单描述一下EF
8、简单描述一下事务
9、手写一种以上的分页SQL语句
上面先列出问题,大家可以默默想一想,然后再看下面的答案。
解答
1、.NET Core跟.NE比较有哪些更好的地方。
这个问题简单,也是常考的问题,大家要牢记在心
a.跨平台,.NET Core 可以运⾏在 Windows 、Linux 和 MAC 系统上;
b.对框架本安装没有依赖,所有依赖都跟程序本身⼀起;
c.NET Core 处理请求的效率非常⾼,由此它可以处理更多的请求;
d.ASP.NET Core 具有更多的安装配置⽅法。
e. 有了Kestrel部署更方便,可以在任何平台部署,不依赖IIS
详情请点击查看文章:NET CORE特性与优势
2、什么是中间
中间件在这里是指注入到应用中处理请求和响应的组件。是通过多个委托来嵌套形成的一个俄罗斯套娃!它可以在调⽤管道中的下⼀个组件之前和之后执⾏⼯作。请求委托(Request delegates)⽤于构建请求管道,处理每个HTTP请求。请求委托使⽤Run,Map和Use扩展⽅法进⾏配置。单独的请求委托可以以内联匿名⽅法(称为内联中间件)指定,或者可以在可重⽤的类中定义它。这些可重⽤的类和内联匿名⽅法是中间件或中间件组件。请求流程中的每个中间件组件都负责调⽤流⽔线中的下⼀个组件,如果适当,则负责链接短路。
自定义中间件的方法请点击查看:ASP.NET Core 核心组件中间件自定义
3、.NetCore依赖注入的三种生命周期。
AddTransient(瞬时) 作用: 每次请求,都获取一个新的实例。即使同一个请求获取多次也会是不同的实例(只要请就要new 新的)。
AddScoped(作用域)作用:每次请求,都获取一个新的实例。同一个请求获取多次会得到相同的实例。
AddSingleton(单例)作用:每次都获取同一个实例 。
如果补充第三方注入控件有多种生命周期更优
点击查看:.NetCore依赖注入的三种生命周期
4、什么是接口
接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式。
点击查看: C#实现多态之接口
5、什么是委托
委托是一种引用类型,它是函数指针的托管版本。在C#中,委托是一种可以把引用存储为函数的类型,它本质上是一个类。它的用法是可以把方法当参数传递。
点击查看详解:讲讲C#中的委托
6、简述IOC容器
IOC只是一种编程思想,不局限于任何一种语言,任何语言都可以实现这种编程思想。它的设计思想是想把创建对象,管理对象生命周期,程序集之间的解耦的工作交给第三方容器来处理。
点击查看详解:关于IOC容器的一些个人理解
7、简单描述一下EF
EF是.NET官方的ORM容器,EF底层仍然是对ADO.Net的封装,它的优点是便于快速开发等
EF分为 DataBase First,Code First和Model First三种开发形式。
点击查看详解:谈谈对Entity Framework (EF) Core的认识
8、简单描述一下事务
事务分为数据库事务和代码层面的事务,它的概念是保持逻辑数据一致性与可恢复性,必不可少的利器。比如同时对两个表进行插入操作,如果一个失败,一个成功,可以通过事务进行回滚。
特点是:原子性、隔离性、持久性、一致性
点击查看详解:聊聊数据库中的事务和锁
9、手写一种以上的分页SQL语句
a.分页方案一:(利用Not In和SELECT TOP分页)
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP (页大小*(页数-1)) id
FROM 表
ORDER BY id))
ORDER BY ID
b.分页方案二:(利用ID大于多少和SELECT TOP分页)
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP (页大小*(页数-1)) id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
答出2种即可,当然你也可以补充回答在EF上简单实现分页...
结语
上面的试题感觉比较简单,但是用手写下来很不容易,毕竟程序员用的是电脑而不是笔杆子。不过答不出来也没有关系,一般在你回答结束后还有一次面对面的补充面试,如果在面谈中回答的更好的话相信你会被面试官青睐。希望本文对你有所收获,欢迎留言讨论或提出异议。
版权声明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。
技术群:添加小编微信并备注进群
小编微信:mm1552923 公众号:dotNet编程大全