1、get、post的区别:
GET用来获取资源,它只是获取、查询数据,不会修改服务器的数据,用于幂等的情况;
POST则是向服务器发送修改请求,进行数据的修改的,适用于所有情况,建议用于不幂等的情况。
2、JavaScript向后台传值的几种方式:
(1)form表单提交(常用)
(2)JQuery中的ajax提交(常用)
(3)通过url字符串拼接向后台提交数据
(4)后台向前台:ViewBag
3、C#的错误处理机制:
try-catch-finally
4、为什么要高内聚低耦合:
为什么要高内聚?
对于同一个功能模块而言他们关系越紧密那么出错率就会相应的降低,同时也有利于编程。
为什么要低耦合?
对于一个软件而言,他的功能模块有很多,如果各个模块之间的关系越复杂,就会产生更多的意想不到的错误(例如随便改一个参数,有可能对其他模块都会造成不可预估的影响),会给以后的维护工作带来很多麻烦!
5、泛型:
泛型好处:1.性能高:定义数据类型,不需要类型转换,避免拆装箱带来的性能损失;
2.类型安全:定义允许使用的数据类型,在编译时检查类型错误,及早发现错误。
6、C#面向对象的设计原则
1.单一原则(对象职责明确原则)SRP:一个对象所完成的任务是明确的。而不能设计万能类!
2.开闭原则(开放扩展,封闭修改)OCP:如果一个项目的需求变化,会导致很多程序的修改,则我们说你的程序设计破坏了开闭原则。实际情况应该是,需求变化,尽量通过扩展对象实现,而不是修改对象。
3.里氏替换原则(LSP):父类能够被他的子类替代。是我们实现多态的基本的机制!
4.迪米特法则(Lod):也叫最小(知道、知识)原则。用于对象解耦
5.接口隔离原则(ISP):是说我们设计接口的时候,尽量以小接口出现,不要设计一个复杂接口。
6.依赖倒置原则(DIP):高层模块不应该依赖于低层模块。两种模块都应该依赖抽象。
7、依赖注入和New的区别:
依赖注入降低模块与模块之间耦合性
依赖倒置:高层模块不应该依赖于低层模块。两种模块都应该依赖抽象。
抽象和接口都不能被实例化;
8、设计模式:
工厂方法、桥接模式、装饰模式、代理模式、观察者模式、命令模式等
9、多态:
抽象、虚方法、重写、重载
10.数据库三大范式:
1.原子性:属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)
2.消除部分依赖:在1NF的基础上,非主属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)。
3.消除传递依赖:在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)。
11.MVVM:
MVVM
vue框架中MVVM的M就是后端的数据,V就是节点树,VM就是new出来的那个Vue({})对象
M(Model):模型层。业务逻辑相关的数据对象
V(View):视图层。就是展现出来的用户界面。
VM(ViewModel):视图模型层。连接view和model的桥梁。因为,Model层中的数据往往是不能直接跟View中的控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入
12、API中的四种调用方法:
get(获取),post(新增),put(更新),delete(删除)
13、c#委托(方法作另一个方法的参数)
//声明委托类型
public delegate void AssembleIphoneHandler();
public AssembleIphoneHandler AssembleIphone;
14、.Net Core 和 .Net FrameWork区别
1、跨平台
2、开源
3、新 API
4、增强的性能
5、并行版本控制
15、Startup中ConfigureServices和Configure有什么用
前者主要用来注册服务,后者主要用来创建和配置请求管道,然后在Main方法中进行调用:
16、.Net Core中的中间件是什么
中间件是一个可以处理HTTP请求或响应的软件管道。
17、Cookies 和 Session 有什么区别?
作用范围不同,Cookie 数据保存在客户的浏览器上,Session数据 保存在服务器端。 存取方式的不同,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。
18、常见的数据结构
数组、链表、栈、队列、树、堆、散列表、图
19、ref和out区别:
ref在传值之前必须先声明并初始化;
out在传值之前先声明,但不初始化,必须在方法中对其完成初始化;
用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
20、什么叫面向对象?
对象是在实例化由类产生对象;
对象是由数据和允许的操作组成的包;
21、String和string的区别:
技术上没区别;
string是C#的关键字,String是类名,String是CLR的类型。
尽管 string 是引用类型,但定义相等运算符( == 和 !=)是为了比较 string 对象(而不是引用)的值;
String 对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。
22、MVC的好处:
降低成本。高重用性和可适用性。可维护性。快速的部署
23、如何优化sql
1.避免使用 select *
2 用union all代替union
3 小表驱动大表
4 批量操作
5 多用limit
6 in中值太多
7 增量查询
8 高效的分页
9 用连接查询代替子查询
10 join的表不宜过多
11 join时要注意
12 控制索引的数量
13 选择合理的字段类型
14 提升group by的效率
15 索引优化