1.介绍一下OOP
OOP是面向对象编程的单词缩写(Object Oriented Programming)。有三大核心特征。
封装:将方法以及数据封装在类里
继承:类可被另外的类继承,继承其方法和数据,并且可对父类方法进行重写
多态:同样的方法,由于实例化对象的不同,会调用不同的逻辑
编译时多态:方法重载
运行时多态:方法重写
2.开启另外一个带参数的方法的线程
ThreadStart thStart=new ThreadStart(()=>Method("abc"));
Thread th=new Thread(thStart);
th.Start();
3.并发
static async Task Main(){
Task task1=Task.Run(()=>Method("abc"));
await Task.WhenAll(task1);
}
4.介绍一下Parallel的用法
Parallel.Invoke(
()=>DoWork("a1"),
()=>DoWork("a2"),
()=>DoWork("a3")
);
适用于CPU密集型的业务,比如图形处理,逻辑计算等业务。
5.PV,QPS,吞吐量的解释
PV点击量
QPS每秒查询数量
计算公式(峰值的pv*0.8)/(24*3600*.02)
吞吐量(即所谓的并发量),指的的网站或系统,单位时间内处理请求的数量
6.有没有接触过高并发的项目
目前所接触的项目不大,但是我们的项目也有这方面的考虑
a.第一点,也是最重要的一点,在预算允许的范围内把服务器性能拉满。
b.前后端分离,早期我们的项目是.net的mvc架构,那种方式就前后台耦合在一起。后来的话,前端通过vue开发,完全独立出来了。
c.库表分离,我们的项目比较特殊,大多数情况下发起请求的是设备,所以为了保证能够收到大量设备发来的请求,我们采用的是一种键值对(key-value)内存数据库,这种数据库是运行在内存中,所以接收速度远远快于sql server或mysql这种关系型数据库,当数据收完了,我们再将收到的数据,进行处理,最后存入到关系型数据库中
d.分布式部署
以业务为标准,拆分后台的服务,让拆分后的服务只负责专属的业务,然后部署到不同的服务器中。
7.列举几个http的请求方式
post,get,put,delete
8.说明一下post与get的区别
post请求可提交的数据长度比get要长度
post提交的内容没有在浏览器中显示,get则会在浏览器中显示
页面刷新的时候post的请求会重新提交,get则不会
post请求在后台一般用于对数据库有更改的操作,即用于增删改,get则用于查询
9.一个.net的mvc的接口,其接口的参数是一个class,前端如何配置,才可让后端接收到一个class参数
前端传的参数一个json字符串,在ajax里要配置contentType:application/json
10.MVC分别代表什么
Model View Controller