1.EF框架。
答:EF是微软提供的ORM框架。
使用Ado.Net需要设置Connection、Command、DataSet、DataReader与数据库交互,把很多精力放在了Ado.Net代码上,EF框架把这些进行了封装,在访问数据库的时候不用关注这些,EF把数据库中的表映射到程序中的实体类中,直接操作实体类来完成对数据库的操作。
2.session与cookie的区别?
答:cookie以文本格式存储在浏览器上,存量有限,若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。
若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。
session存储在服务端,比cookie安全,session过期/失效(默认30分钟)。
3.数据库中,事物的性质?
答:原子性:要么全部成功,要么全部失败。
一致性:数据库从一个一致性状态变换到另一个一致性状态;假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000
隔离性:当多个用户并发访问数据库时,操作同一张表,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
4.何时必须生命一个类为抽象类?
答:当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
5.MVC框架中ActionResult、JsonResult、ContentResult哪个可以return view()
答:ActionResult
6.Aspx页面中,updatepanel的作用是什么?
答:局部刷新
7.可以采用foreach迭代的类对象必须满足什么条件。
答:需要实现IEnumerable接口或声明GetEnumerator方法的类型。
8..net环境下把数据库数据转化成XML
答: DataTable dt = new DataTable("Table");//设置Table名称
dt.Columns.Add("name", System.Type.GetType("System.String"));//添加列
dt.Columns.Add("age", System.Type.GetType("System.Int32"));
DataRow dr = dt.NewRow();//创建新行
dr["name"] = "会划水的武大郎";
dr["age"] = 24;
dt.Rows.Add(dr);//添加数据
StringWriter writer = new StringWriter();
dt.WriteXml(writer);
string xmlstr = writer.ToString();//DataTable转XML
writer.Close();
9. 点击按钮,弹出确认对话框,点击确定后弹出“删除完毕”
答: var str = confirm("请选择点击一个按钮!");
if (str == true) {
alert("删除完毕");
}
else {
alert("关闭对话框");
return;
}
10.请写出一个JSON的例子
答:{"name":"小明","age":27}
11.for和foreach那个效率更高?
答:需要循环数组结构的数据使用时,建议for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。
需要循环链表结构的数据时,不要使用for循环,数据量大的时候有可能会导致系统崩溃,原因是因为foreach使用的是迭代器。
所以foreach效率更高。
12.WebService基于什么协议?
答:使用SOAP协议实现跨编程语言和跨操作系统平台。
13.声明静态数据库连接对象,所有业务类都引用该静态链接对象访问数据库?
答:可能不可用,会引起队列延迟等问题。
14.C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数的构 造函数。这样我应该写几个构造函数?
答:两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参构造函数。
15.能够阻止某一个类被其他类继承么? 能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
答:使用关键字sealed,密封类不允许被继承。标记这个类为public,并标记这个方法为sealed。
16.什么事强类型,C#是吗,JS呢?
答:对象的类型在编译时刻确定。C#强类型、JS弱类型。
17.金额等精确的数值声明为什么类型?
答:decimal
18.通过程序控制GC的强制回收是否可以提高效率?
答:显式执行GC.Collect()有可能给内存回收增加负担,而且不一定能真正回收内存
19.int与int?的区别
答:int?为可空类型,把值类型装箱为引用类型,int是值类型,不能设置为null
20.求数列(1,1,2,3,5,8...)的和
答:public int GetNum(int x)
{
if (x <= 0)
{
return 0;
}
if (x == 1 || x == 2)
{
return 1;
}
return GetNum(x - 2) + GetNum(x - 1);
}
21.B/S架构下,在session中存储一个DataTable的对象y,在什么时候会被GC自动回收?这种方式存储数据是否合理?如果application增加了对y的引用,什么时候会被回收?
答:Session超时失效后,GC随机回收。Application对Y的引用回收,在重启或者关闭iis时发生。
22.System.String与System.StringBuilder有什么区别?
答:System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,使用append方法串修改字符串。
StringBuilder底层数据结构是char数组。
23.举例写一个单利模式
答:public sealed class Singleton
{
public static Singleton instance = null;
private Singleton(){}
public static Singleton Instance(){
if( instance == null ){
instance = new Singleton();
}
return instance;
}
24.描述一下abstract、virtual、override各自的作用于区别
答:irtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。
virtual修饰的方法必须有实现,而abstract修饰的方法一定不能实现。
virtual可以被子类重写,而abstract必须被子类重写。
override重写的基方法必须是 virtual、abstract 或 override 的修饰,重新父类。
25.冒泡排序
答: int[] arrays = { 1, 8, 5, 9, 4, 5, 4, 3, 7, 6 };
for (int i = 0; i < arrays.Length - 1; i++)
{
for (int j = 0; j < arrays.Length - i - 1; j++)
{
if (arrays[j] > arrays[j + 1])
{
int temp = arrays[j];
arrays[j] = arrays[j + 1];
arrays[j + 1] = temp;
}
}
}
26.二分法
答: public static int BinarySearch(int[] arr,int value)
{
int low = 0;
int high = arr.Length - 1;
while(low<=high)
{
int middle = (low + high) / 2;
if (value == arr[middle])
{
return middle;
}
else if(value >arr[middle])
{
low = middle + 1;
}
else
{
high = middle - 1;
}
}
return -1;
}
27.int、string、Hashable、DataTable、DateTime中哪些是引用类型?
答:string、Hashtable、DataTable
28.查询A表中的id字段,如果不足8位,前面补充0。
答:select left(replicate('0',8-len(id)) + ltrim(id),8) from A
29.MVC中有几种路由?
答:
30.MVC中的过滤器。
答: