2019面试题总结

C#与数据库相关知识问答汇总
该博客汇总了C#和数据库相关的知识问答。涵盖EF框架、session与cookie区别、数据库事务性质等内容,还涉及MVC框架、数据转换、算法(冒泡排序、二分法)等方面的问题及解答,为相关技术学习提供参考。

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中的过滤器。

答:

转载于:https://my.oschina.net/u/3141521/blog/3025306

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值