最近几天的面试集锦,持续更新
1、json的序列化和反序列化如何实现?
2、事件是什么?委托是什么?两者的区别。
委托(代表)delegate,是.Net提供的一种引用类型,可以用来引用函数,使用委托,可以实现函数回调、异步回调等,提高程序设计的灵活性。委托的概念有点像c/c++的指针函数。
事件,event,其实就是委托,明确地说是多播委托,就是一个委托可以指向多个函数,并分别回调这些函数。事件用在类中,用来实现一种通知机制,即告知外部,当前类的状态。
方法,就是函数了,和其他语言的概念一样。
举个例子:
定义委托:delegate int FuncEventHandler(int i);
用这个委托定义事件:event FuncEventHandler Func;
用匿名函数给事件赋值:Func += delegate(int i){return i++;};
异步回调函数(后面两个参数用于指定异步回调返回时再次回调的委托,可以忽略):Func.BeginInvoke(1, null, null);
3、属性和索引器有什么差别?
属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。 属性可用作公共数据成员,但它们实际上是称为“访问器”的特殊方法。 这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性。
索引器允许类或结构的实例就像数组一样进行索引。 索引器类似于属性,不同之处在于它们的取值函数采用参数。
索引器是属性的一种,它本质上和属性一样是方法。
索引器的类型和集合元素的类型一致
索引器没有名称 (this关键字为标志)
索引器至少有一个参数eg:this(int i)
索引器可以重载,因此一个类中可以有多个索引器,调用时索引器通过数组下标索引;索引器是针对集合类型成员变量的
属性是封装的一种方法。是专门来控制访问性的一种语法结构,成员变量定义为私有类型(因为变量是表示对象特征的,不可以随便修改,为了安全性。)
Value是关键字,它的类型取决于属性的数据类型;
属性的访问修饰符为public(总是),属性有类型,它的类型取决于成员变量的类型。
当修改属性或为属性赋值时,将值先传给value,再赋给成员变量;
属性的类型分为三类:只读(get) 读写(get&&set) 只写(set)
Set:set访问器 get:get访问器
属性名与成员变量同名,书写时首写字母必须大写
4、sql如何优化?
https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/72875054
5、sql分页如何处理?
6、list转json如何实现?
7、简述垃圾回收机制原理。
8、能用foreach便利访问的对象需要实现什么接口或声明什么方法?
9、用sealed修饰的类有什么特点?
无法被继承
10、代码实现冒泡排序。
11、1.1.2.3.5.8.13.21.34求第30位数的结果,用递归算法实现。
12、get和post传值有什么差别?
https://zhidao.baidu.com/question/567658249.html
13、值类型和引用的类型的区别?
https://www.cnblogs.com/woaixiaozhi/p/5116137.html
14、接口和类的区别是什么?
15、SQL能通过视图修改表吗?
16、访问修饰符有哪些?
public,private,protected,internal
17、SQL中INT和GUID数据类型有什么优缺点?
https://www.cnblogs.com/zhuqil/archive/2010/12/02/1894575.html
18、简述下事务是什么。
19、有在数据库中写过循环吗?用过游标吗?
20、lambda和linq的区别。
21、func和action的区别。
func有返回值,action没有。
22、viewdata和viewbag的区别。
23、后端如何防止接口被多次重复调用?
24、如何防止接口传入参数被篡改?
25、rabbitMQ有哪几种消息队列?
5种
26、如何放sql注入、依赖注入?
27、后端如何缓存信息?
28、string和stringbuilder的差别
29、存储过程和函数的差别
30、结构和类的差别
31、分布式事务的使用
32、锁的使用