博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试集萃
阅读量:7196 次
发布时间:2019-06-29

本文共 4469 字,大约阅读时间需要 14 分钟。

1.产生一个int数组,长度为10,并向其中随机插入1~10,并且不能重复 

1 static void Main(string[] args) 2 { 3     // a是要生成结果的数组 4     int[] a = new int[10]; 5     int [] b=new  int[10]; 6     Random r = new Random(); 7     for (int i = 1; i < 11; i++) 8     { 9         b[i - 1] = i;10     }11     int temp = -1;12     for (int i = 10; i > 0; i--)13     {14          int n = r.Next(1, i);15          a[i - 1] = b[n-1];16          temp = b[i-1];17          b[i-1] = b[n-1];18          b[n-1] = temp;19     }20     for (int i = 0; i < 100;i++ )21     {22          if (i % 10 != 0)23          {24              Console.Write(a[i] + "\t");25          }26          else27 28 {29          Console.WriteLine();30     }31     Console.ReadKey();32 }

2.一列数的规则如下:1,1,2,3,5,8,13,21,34…,求第30位数是什么?,使用递归实现

1 public int GetNumberAtPos(int pos) 2 { 3  4  if(pos==0||pos==1) 5  6 {  7  8               return 1;         9 10 }11       int res = GetNumberAtPos(pos - 1) + GetNumberAtPos(pos - 2);12       return res;13 }                                                                                                                                              

3.说出一些常用的类,接口,请各列举5个

  常用的类:StreamReader,WebClient,StringBuilder,SqlConnection,FileStream,File,Regex,List<T>,Dictionary<K,V>。

  常用的接口:IDisposable,IList,IEnumerable,IDbConnection,IComparable,ICollection,IDictionary。

4.说出一些数据库优化方面的经验

  索引内部的原理:想象成Dictionary,插入,删除,更新的速度慢了,加上索引也多占用了空间,查询的速度快了,加上索引以后速度提升非常明显。

         (1)在经常检索的字段上(select * from Person Where Name=@Name)使用索引提高查询速度。

            (2)select中只列出必要的字段,而不是*。

            (3)避免隐式类型转换造成的全表扫描,在索引上使用函数也会造成全表扫描(因为索引只是为字段建立的,一旦使用表达式或者函数,那么索引就是失效了,当然也可以使用”函数索引”,”表达式索引”解决这个问题),使用索引不一定能提高查询速度

    (4)避免在索引列上使用计算(where Name+’A’=@MyName)。

           (5)不要进行没有意义的优化,根据性能查看器的报表,对最耗时的SQL进行优化。

5.什么是数据库事务

  (1) 事务的三个特性:一致性,原子性,隔离性

  (2) 几个SQL语句,要么全部执行成功,要么全部执行失败,事务的三个操作:Begin,Commit,RollBack。

  (3) 取刚插入数据的ID值,就要用事务来隔离,

6.请简单的说明数据库建立索引的优缺点

  (1)使用索引可以加快数据的查询速度,不过由于数据插入过程中会建索引,所以会降低数据的插入,更新速度,索引还会占用磁盘空间。

7.JavaScript面向对象

1 (1)     定义一个Person类,创建一个对象 2  3 function Person(name.,age){ 4     this.name=name; 5  6          this.age=age; 7  8          this.sayHi=function(){ 9 10                    alert(this.name);11 12                    alert(this.age);13 14   }15 16 }17 18 var p=new Person(“HYL”,18);19 20 p.sayHi();21 22 (2)第二种,当new对象的时候方法只在内存中被创建了一次23 24 function Person(name.,age){25     this.name=name;26 27          this.age=age;28 29 }30 //原型对象里面存储的是所有的实例成员共享的成员,这个方法在内存中只存了一次31 32 Person.prototype.sayHi=function(){33 34             alert(this.name);35 36 }37 38 var p=new Person(“HYL”,18);39 40 p.sayHi()

8.Repeater控件和GirdView控件的优缺点

  (1)GirdView控件的优点是:功能很强大,提供分页,编辑,删除,选择等等很多功能,使用最方便,直接拖拽到页面上,建立新的数据源,点几下鼠标就可以维护一个表的浏览,删除和修改了。缺点是:占用系统资源大,他的分页是把整个表的数据取出来,到GirdView上面进行分页的,因此如果数据量比较大的话,速度非常忙,效率极低,而且因为模版已经定制好,想自己灵活控制,不太可能。

  (2)repeater控件的优点是:功能简单,效率高,容易灵活控制生成的HTML代码,分页需要自己实现,整体来说,适合前台使用。缺点是:功能简单,需要自己做很多的事情才能完成某个功能。

9.数据库实现分页的几种方法(总结)

1 (1)使用存储过程实现SQL语句的分页 2  3 create proc p_GetPageUsers 4 ( 5  6             @pageIndex int,   --当前请求的页码 7  8             @pageSize int,  --页的数量 9 10             @totalCount int output  --输出多少条数据11 12 )13 14 as15 16 ----动态拼接SQL语句17 18 declare @sql nvarchar(2000)19 20 set @sql=’select top ’+CAST(@pageSize as nvarchar(16))+’* from 表名 where ID not in21 (22 23 select top ‘+CAST((@pageIndex-1)*@pageSize as nvarchar(20))+’ ID from 表名 order by ID’24 ) order by ID’25 26 exec (@sql)27 28 select @totalCount=count(0) from 表名29 30 (2)     使用row_number函数实现SQL语句的分页31 32 create proc p_GetPager33 34 (35 36             @pageIndex int,37 38             @pageSize int,39 40             @totalCount int out41 42 )43 44 as select @totalCount=count(1) from表名45 46 select * from( select t.*,row_number() over(order by ID) as num from 表名 as t )as m47 48 where m.num between @pageSize*(pageIndex-1)+1 and @pageIndex*@pageSize49 50 (3)使用Linq实现分页51 52   public IQueryable
LoadEntities
(int pageSize,int pageIndex,out int total,Func
whereLambda,Func
orderByLambda)53 54 {55 56 var tempData=db.Set
.Where
(whereLambda).OrderBy
(orderByLambda).Skip
(pageSize*(pageIndex-1)).Take
(pageSize).Asquerable();57 }

10.使用JavaScript实现纯的异步Ajax请求

1 

11.C#中的委托是什么?事件是不是一种委托,事件和委托的关系

  (1)委托可以把一个方法作为参数传递给另外一个方法,委托可以理解为指向一个函数的指针,委托和事件没有可比性,因为委托是类型,事件是对象

12.short s=1;s=s+1;有错吗?short s=1;s+=1;有错吗?

  (1)第一种写法是有错误的,因为1是整形(int32),int+short的结果还是int,在这里是无法进行隐式类型转换的,改为short s=1; s=(short)s+1;就行了

  (2)第二种写法没有错误,因为其在内部自动已经进行了隐式转换。

   总结未完待续

  

转载地址:http://qhvkm.baihongyu.com/

你可能感兴趣的文章
iOS 蒲公英第三方打包平台
查看>>
堆和栈的区别(转过无数次的文章)
查看>>
Linux指令--kill
查看>>
PHP 数据增删改
查看>>
Demo学习: Collapsible Panels
查看>>
Demo学习: DownloadDemo
查看>>
删除字符串中的子串
查看>>
Oracle Apex 有用笔记系列 6 - 可编辑交互报告 Editable Interactive Report
查看>>
Swift开发iOS项目实战视频教程(一)---iOS真简单
查看>>
相似性计算公式
查看>>
Tomcat服务器版本号泄露-低危漏洞修复
查看>>
假设检验、显著性检验
查看>>
10.线程池
查看>>
读写锁
查看>>
201521123087《Java程序设计》第14周学习总结
查看>>
jQuery 动画效果汇总
查看>>
IO流之FileUtils工具类的使用
查看>>
case表达式详解
查看>>
PHP 将二维数组中某列值作为数组的键名 -- 超实用
查看>>
学习进度条——第四周
查看>>