密:国内某上市公司.NET工程师面试题

    上市公司最近也不好过,这不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编程大全
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值