2023年6月21日发(作者:)
.net⾯试-常见问题归纳整理第⼀部分:C#语⾔1.类和结构的区别1)类是引⽤类型,结构是值类型2)类可以继承,结构不能继承,两者都能实现接⼝3)类可以有显⽰的⽆参构造函数,结构则不能4)类可以有析构函数,结构则不能5)结构中不能有实例字段初始值设定,类⽆限制6)类的构造函数⾥可以不⽤对所有字段进⾏初始化,结构必须要对所有字段进⾏初始化2.C#中类成员访问修饰符有哪些public:公有的,任何位置都可以访问private:私有的,只有类的内部才能访问protected:受保护的,只有类的内部或派⽣类中可以访问internal:内部的,同⼀个程序集(命名空间)⾥⾯可以访问protected internal:内部受保护的,同⼀个程序集⾥⾯或不同程序集派⽣类中可以访问3.⾯向对象三⼤特征是什么封装、继承、多态4.抽象类和接⼝的区别相同点:1)不能被实例化2)可以包含任意个抽象成员不同点:1)抽象类是类,具有类的特点:单基类继承,多接⼝实现;接⼝不是类,只能继承多个接⼝2)抽象类中可以包含已经实现的⾮抽象成员;接⼝中所有成员都是抽象的,没有实现的5.接⼝可以包含哪些成员⽅法、属性、事件、索引器6.什么是装箱和拆箱装箱:将值类型转换为object类型,或由此值类型实现的任何接⼝类型拆箱:将object类型或接⼝类型转换为实际的值类型7.C#中,哪些类型是值类型,哪些类型是引⽤类型值类型:结构、枚举引⽤类型:类、接⼝、委托、数组、字符串8.值类型和引⽤类型的区别1)值类型⼀般存储在线程栈上,引⽤类型存储在托管堆上2)值类型的变量本⾝实际存储的是实际数据,引⽤类型的变量本⾝实际存储的是引⽤地址,实际的数据存储在托管堆上3)在作为⽅法参数传递时,值类型传递的是值的副本在⽅法中对其修改不会影响原始值。引⽤类型参数传递的是引⽤地址,在⽅法中对该参数进⾏修改会对托管堆上该地址实际数据进⾏修改,从⽽会影响原始值9.C#中的基本数据类型有哪些值类型:1)有符号整数(由⼩到⼤):sbyte、short、int、long2)⽆符号整数(由⼩到⼤):byte、ushort、uint、ulong3)浮点型:float、double、decimal4)布尔型:bool5)字符型:char引⽤类型:1)string、object10.重写和重载的区别重写:⼦类对基类中的虚成员(虚⽅法、虚属性等)或抽象成员(抽象⽅法、抽象属性等)进⾏覆盖重新实现重载:同⼀个类中,同名⽅法具有不同的参数签名(参数个数、参数的数据类型、参数是否具有ref、out、params修饰)的实现11.构造函数是否可以被继承?是否可以被重写?不能被继承也不能被重写,但是在创建类的实例时会⾸先调⽤其基类的⽆惨构造函数12.C#中,运算符"?"和"??"的区别是什么1)?:称为三⽬运算符,运算格式如下:condition?first_expression:second_expression;如果条件condition为true,则计算第⼀表达式first_expression返回计算结果;如果是false,则计算第⼆表达式second_expression返回计算结果2)??称为null合并运算符,⽤于定义可以为null值的类型和引⽤类型的默认值。如果运算符左边不为null,则返回运算符左边的值;如果此运算符左边为null,则返回右边的值13.C#中,⽤const和readonly修饰符的字段有什么区别1)const:表⽰常量,其修饰是在编译期间确定的,因此在声明的时候只能通过常量表达式指定其值2)readonly:表⽰只读字段,其修饰是在运⾏时计算的,在对象的实例构造函数或类的静态构造函数⾸次被调⽤时计算,之后字段的值不能被更改 s=""和string s = null的区别1)string s=""变量s指向了空字符串,给变量分配了空间,只不过s指向了⼀个长度为0的空字符串对象2)string s = null 变量s指向了空引⽤null,表⽰s没有引⽤任何对象,即没有给变量s分配内存空间15.C#中,new有⼏种⽤法1)⽤于创建对象和调⽤构造函数2)创建匿名类实例3)在⽤作修饰符时,new关键字可以显⽰隐藏从⽗类继承的成员16.C#中,ref和out的区别1)ref修饰参数时传⼊⽅法前必须初始化;out可以不⽤2)ref参数在⽅法内部可以直接使⽤;out不可以3)ref参数在⽅法内部可以使⽤也可以不适⽤;out在⽅法返回前必须对其赋值17.C#中,using有⼏种⽤法1)导⼊和引⽤命名空间2)给类型起别名3)使⽤using声明的对象,可以确保在using代码块结束时,该对象所使⽤的资源被⾃动释放18.C#中,&和&&,|和||有什么区别1)&表⽰按位与运算,&&表⽰逻辑与,表⽰对两个布尔类型进⾏逻辑与操作,两边都为true才返回true2)|表⽰按位或运算,||表⽰逻辑或,表⽰对两个布尔类型进⾏逻辑或操作,两边条件⼀个位true就返回true19.C#中,is和as的区别is⽤于检查对线是否与给定的类型兼容;as⽤于对引⽤类型的变量进⾏类型转换20.什么是GC,为什么要⽤到GCGC是垃圾收集器,计算机程序运⾏过程中需要使⽤到内存,需要向操作系统申请内存空间,由于内存空间是有限的所以使⽤完程序需要释放内存。垃圾收集器就是⼀种⾃动进⾏内存管理的机制,使得程序员不⽤⼿动去分配内存和释放内存,由垃圾收集器全权负责内存管理⼯作,提⾼了程序的安全性、稳定性、开发效率21.什么是委托?事件跟委托是什么关系?委托是⼀个类,它定义了⽅法的类型,使得⽅法可以当做另⼀个⽅法的参数来传递事件也是⼀种委托中访问数据库的基本步骤是什么创建数据库连接对象打开连接创建命令对象,执⾏SQL语句关闭连接中,DataSet和DataReader的区别是什么1)DataSet数据集,表⽰内存中的数据库,DataSet在读取数据时会与数据库连接,⼀次性的读取所有的表数据到内存中,然后便断开连接2)DataReader数据读取器,在读取数据时是⼀⾏⾏读取,每次只会读取⼀⾏,直到读到最后⼀⾏,才断开数据库连接。在整个读取过程中,数据库要保持连接状态中常⽤的对象有哪些SqlConnection:连接对象,⽤于执⾏数据库连接SqlCommand:命令对象,⽤于执⾏SQL语句SqlDataAdapter:适配器对象,⽤于填充数据集和更新数据库SqlParameter:参数对象,⽤于执⾏参数化SQL语句SqlDataReader:读取器对象,⽤于从数据库中快速逐⾏读取数据SqlTransaction:事务对象,⽤于执⾏数据库事务第⼆部分:中的⾝份验证有哪些1)windows⾝份验证:会结合internet信息服务(IIS),为每个⽤户开启windows账户,通过windows账户验证⽤户安全2)Forms验证:通过web表单,为每⼀个⽤户创建⽤cookie保存的⾝份验证3)Passport验证:由Microsoft提供集中⾝份验证服务,通过将每个⽤户信息提供交给Passport登录服务⽹站进⾏⽤户⾝份验证er与ct有什么区别1)ServerTransfer:服务器端重定向,不能跨站点2)ct:客户端重定向,可以跨站点中页⾯之间传递值⼏种⽅式1)QueryString:通过URL中的查询字符串(?id=5&name=abc)优点:简单便捷缺点:安全性差,长度⼤⼩有限制2)Session:通过会话状态传值优点:当前会话中所有页⾯均可使⽤,能传递任何对象缺点:增加服务器负担容易超时丢失3)Cookie:通过客户端传值优点:读取该cookie的所有页⾯都可以使⽤缺点:只能够存储⽂本信息字符串,⼤⼩不能超过4KB4)Application:通过全局应⽤程序对象传值优点:整个应⽤程序都可以使⽤,且能够传递任何对象缺点:可能产⽣并发问题5)er:通过服务器端重定向传值优点:可以将与最初请求相关的所有数据传递给重定向页⾯缺点:资源消耗较⼤4.什么是code-behind技术代码隐藏技术,显⽰页⾯和逻辑页⾯分离,提⾼页⾯可维护性,提⾼开发效率中调⽤webservice的⽅法有哪些1)通过HTTP-GET请求调⽤2)通过HTTP-POST请求调⽤3)通过SOAP请求调⽤6.怎样理解web应⽤程序的“⽆状态编程”?web应⽤程序是基于http协议(具有⽆状态性),即客户端发送http请求服务器端,服务器收到请求将内容返回给客户端,在这⼀过程服务器端不会记录任何客户端的信息,请求结束后服务器也不会保留此次请求的任何信息,所有相关请求都会被释放,所有请求响应都是即时的n有什么缺点,可以⽤什么⽅法解决存储在IIS内存中,当IIS发⽣重启或进程回收时,session则会丢失解决办法是将session配置为“stateserver”或“SQLserver”,存储在状态服务进程或数据库中,可以避免丢失,但此时⽆法捕获Session_End事件中所有⾃定义⽤户控件都必须继承⾃哪个类?页⾯必须继承⾄哪个类1)⽤户控件基类:ntrol2)页⾯基类:9.向服务器发送请求有⼏种⽅式Get:向服务器请求数据Post:向服务器提交数据 Service有哪些优点1)Web Service是基于XML,与具体的语⾔平台⽆关,故可以实现跨平台,跨语⾔通信2)Web Service是采⽤SOAP协议(简单对象访问协议)进⾏通信,该协议基于HTTP协议,故可以实现跨防⽕墙通信3)Web Service可以很容易实现分布式应⽤程序缓存有⼏种实现⽅式1)页⾯输出缓存:将页⾯全部进⾏缓存2)页⾯局部缓存:将页⾯中的⼀部分放在⽤户控件,对该部分进⾏缓存3)数据缓存:使⽤cache类进⾏数据缓存4)客户端缓存:使⽤HttpCachePolicy类进⾏客户端缓存12.什么是ViewState,有什么作⽤视图状态:Web应⽤程序是⽆状态,每次从服务器请求⽹页时都会创建⼀个新实例,每次往返过程会丢失该页⾯和控件关联信息,为了客服这⼀局限性,页框架包含了状态管理功能,可以在往返之间保存页⾯和控件关联信息,这便是视图状态常见的后缀名有哪些aspx:页⾯ascx:⽤户控件asmx:web serviceashx:⼀般处理程序asax:全局应⽤程序配置六⼤对象有哪些Request、Response、Server、Session、Cookie、实现ajax请求的常⽤⽅法有哪些?有什么区别?$.get⽅法:通过get⽅式发送请求$.post:通过post⽅式发送请求$.ajax:可以使⽤指定⽅式发送请求16.⼿动实现ajax请求的步骤是什么1)创建XMLHttpRequest对象2)调⽤open⽅法初始化请求3)设置回调函数4)发送请求的各个字母代表什么含义,在MVC框架中起什么作⽤M:Model⽤户数据访问层V:View视图⽤于呈现页⾯C:Controller控制器⽤户处理请求逻辑请求的处理过程请求到达服务器后⾸先进⼊路由系统进⾏验证,如果请求的url地址格式符合路由定义,则将请求丢给控制器的⽅法进⾏处理。在⽅法中,可能会访问模型中的数据、处理相应的业务逻辑,然后⽅法将根据请求的内容返回⼀个适当的视图呈现给客户端19.请使⽤jquery实现⼀个复选框全选、反选功能function selectAll(){var checked = $("#chkall").get(0).checked;$(":checkbox:not(#chkall)").each(function(){ = checked;})}20.请使⽤jquery实现表格中隔⾏变⾊效果$(document).ready(function(){$("#table tr:even").css("background-color","orange");$("#table tr:odd").css("background-color","pink");})21.请使⽤jquery实现表格中⿏标移动的光棒效果$(document).ready(function(){$("#table tr").hover(function(){ $(this).css("background-color","颜⾊")},function(){ $(this).css("background-color","颜⾊")})})第三部分:SQLServer1.写出⼀条SQL语句,取出表A中第31条到第40条数据(SQLServer,以⾃动增长的ID作为主键,注意ID可能不是连续的)select * from(select *,row_number() over(order by id) row_no from A) t where row_no between 31 and 402.请说出SQLServer中三种表连接的⽅式inner join 、left join、right join区别及对最终查询结果的影响1)inner join:内联查询,查询出满⾜on条件两个表公告集合2)left join:左外联查询,查询出以左表为基础与右表进⾏关联,满⾜on条件结果左表数据完全保留,右表没有满⾜数据⽤null补齐3)right join:右外联查询,查询出以右表为基础与左表进⾏关联,满⾜on条件结果右表数据完全保留,左表没有满⾜数据⽤null补齐3.存储过程和函数的区别1)函数是嵌套在sql语句使⽤,存储过程⼤多数作为⼀个独⽴部分使⽤,exec调⽤2)函数限制⽐较多,不能⽤临时表只能⽤表变量,存储过程⼏乎所有的sql代码都可以使⽤3)函数针对完成单⼀功能,存储过程实现业务⽐较复杂的逻辑功能4)函数只能返回⼀个值或表对象,存储过程可以返回⼀个或多个输出参数4.数据库索引是什么,有什么作⽤数据库索引是⼀列或多列的排序结构,作⽤类似⼀本书⽬录可以加快查询表中数据的速度5.数据库索引的分类和区别1)聚集索引:表⽰索引中的结构与数据库表中相应⾏数据在物理磁盘存储的顺序相同的索引2)⾮聚集索引:表⽰索引中的结构与数据库表中相应⾏数据在物理磁盘存储的顺序不相同的索引6.什么是事务,它有什么特性事务:执⾏单个逻辑功能的⼀组操作称为事务,事务是最⼩的⼯作单元,⽆论执⾏成功或失败都作为⼀个整体进⾏⼯作事务的ACID特性:1)原⼦性(Atomicity)即不可再分,要么都执⾏要么都不执⾏2)⼀致性(Consistency)在事务开始之前结束之后,所有的数据都保持⼀致性3)隔离性(Isolution)事务执⾏互不⼲扰,⼀个事务不可能看到其它事务运⾏的数据4)持久性(Durability)事务完成后,对数据库的更改保持长久不会被回滚7.使⽤事务的最⼤好处是什么可以保证数据完整性和⼀致性,要么全部执⾏成功,要么全部执⾏失败ver中,触发器分哪⼏种?分别代表什么含义分两⼤类:1)DML触发器当数据库发⽣数据操作语⾔(DML)事件时将调⽤DML触发器,DML事件包括INSERT语句、UPDATE语句、DELETE语句DML触发器⼜分为:after触发器(在执⾏了INSERT、UPDATE、DELETE语句操作之后触发)after触发器只能定义在表上instead of触发器(表⽰并不执⾏INSERT、UPDATE、DELETE⽽是执⾏触发器本⾝)instead of触发器可以在表上定义也可以在视图上定义2)DDL触发器当数据库发⽣数据定义语⾔(DDL)事件时将调⽤DDL触发器。DDL事件主要与以关键字CREATE、ALTER、DROP开头的sql语句和truncate有什么区别1)delete可以带where条件,⽤于删除指定条件的数据;truncate不能带where条件2)delete删除所有数据后,下⼀次插⼊数据紧接着⾃增ID数值;truncate删除所有数据后,下⼀次插⼊数据是重置的数值和union all的区别1)union:合并时去掉重复数据2)union all:合并时对重复数据不作处理ver,有⼀张学⽣成绩表,有三个字段:学⽣ID,学⽣姓名,考试成绩。如何查询出成绩排在前三名的学⽣(注意:可能有并列名次)select * from (select *,dense_rank() over(order by 学⽣成绩 desc) no from 学⽣成绩表) t where no<=ver中,向⼀个表中插⼊新数据,如何得到⾃增长字段的当前值select @@ver中,游标有什么作⽤?如何知道游标已经到了最后?作⽤:从包含多条记录结果中每次提取⼀条记录,类似程序代码中的遍历循环,每次只读取⼀⾏的数据当全局变量@@fetch_status值不等于0,表⽰游标已经到了最后第四部分:算法1.请⽤递归算法实现计算1+2+3+...+100的结果static void Main(string[] args){int total = sum(100);ine(total);}static int sum(int x){ if(x<=1) return x; else return x+sum(x-1);}2.请实现⼀个冒泡排序算法int temp;for(int i = 0;i<-1;i++){ for(int j=i+1;j<;j++) { if(num[j]
2023年6月21日发(作者:)
.net⾯试-常见问题归纳整理第⼀部分:C#语⾔1.类和结构的区别1)类是引⽤类型,结构是值类型2)类可以继承,结构不能继承,两者都能实现接⼝3)类可以有显⽰的⽆参构造函数,结构则不能4)类可以有析构函数,结构则不能5)结构中不能有实例字段初始值设定,类⽆限制6)类的构造函数⾥可以不⽤对所有字段进⾏初始化,结构必须要对所有字段进⾏初始化2.C#中类成员访问修饰符有哪些public:公有的,任何位置都可以访问private:私有的,只有类的内部才能访问protected:受保护的,只有类的内部或派⽣类中可以访问internal:内部的,同⼀个程序集(命名空间)⾥⾯可以访问protected internal:内部受保护的,同⼀个程序集⾥⾯或不同程序集派⽣类中可以访问3.⾯向对象三⼤特征是什么封装、继承、多态4.抽象类和接⼝的区别相同点:1)不能被实例化2)可以包含任意个抽象成员不同点:1)抽象类是类,具有类的特点:单基类继承,多接⼝实现;接⼝不是类,只能继承多个接⼝2)抽象类中可以包含已经实现的⾮抽象成员;接⼝中所有成员都是抽象的,没有实现的5.接⼝可以包含哪些成员⽅法、属性、事件、索引器6.什么是装箱和拆箱装箱:将值类型转换为object类型,或由此值类型实现的任何接⼝类型拆箱:将object类型或接⼝类型转换为实际的值类型7.C#中,哪些类型是值类型,哪些类型是引⽤类型值类型:结构、枚举引⽤类型:类、接⼝、委托、数组、字符串8.值类型和引⽤类型的区别1)值类型⼀般存储在线程栈上,引⽤类型存储在托管堆上2)值类型的变量本⾝实际存储的是实际数据,引⽤类型的变量本⾝实际存储的是引⽤地址,实际的数据存储在托管堆上3)在作为⽅法参数传递时,值类型传递的是值的副本在⽅法中对其修改不会影响原始值。引⽤类型参数传递的是引⽤地址,在⽅法中对该参数进⾏修改会对托管堆上该地址实际数据进⾏修改,从⽽会影响原始值9.C#中的基本数据类型有哪些值类型:1)有符号整数(由⼩到⼤):sbyte、short、int、long2)⽆符号整数(由⼩到⼤):byte、ushort、uint、ulong3)浮点型:float、double、decimal4)布尔型:bool5)字符型:char引⽤类型:1)string、object10.重写和重载的区别重写:⼦类对基类中的虚成员(虚⽅法、虚属性等)或抽象成员(抽象⽅法、抽象属性等)进⾏覆盖重新实现重载:同⼀个类中,同名⽅法具有不同的参数签名(参数个数、参数的数据类型、参数是否具有ref、out、params修饰)的实现11.构造函数是否可以被继承?是否可以被重写?不能被继承也不能被重写,但是在创建类的实例时会⾸先调⽤其基类的⽆惨构造函数12.C#中,运算符"?"和"??"的区别是什么1)?:称为三⽬运算符,运算格式如下:condition?first_expression:second_expression;如果条件condition为true,则计算第⼀表达式first_expression返回计算结果;如果是false,则计算第⼆表达式second_expression返回计算结果2)??称为null合并运算符,⽤于定义可以为null值的类型和引⽤类型的默认值。如果运算符左边不为null,则返回运算符左边的值;如果此运算符左边为null,则返回右边的值13.C#中,⽤const和readonly修饰符的字段有什么区别1)const:表⽰常量,其修饰是在编译期间确定的,因此在声明的时候只能通过常量表达式指定其值2)readonly:表⽰只读字段,其修饰是在运⾏时计算的,在对象的实例构造函数或类的静态构造函数⾸次被调⽤时计算,之后字段的值不能被更改 s=""和string s = null的区别1)string s=""变量s指向了空字符串,给变量分配了空间,只不过s指向了⼀个长度为0的空字符串对象2)string s = null 变量s指向了空引⽤null,表⽰s没有引⽤任何对象,即没有给变量s分配内存空间15.C#中,new有⼏种⽤法1)⽤于创建对象和调⽤构造函数2)创建匿名类实例3)在⽤作修饰符时,new关键字可以显⽰隐藏从⽗类继承的成员16.C#中,ref和out的区别1)ref修饰参数时传⼊⽅法前必须初始化;out可以不⽤2)ref参数在⽅法内部可以直接使⽤;out不可以3)ref参数在⽅法内部可以使⽤也可以不适⽤;out在⽅法返回前必须对其赋值17.C#中,using有⼏种⽤法1)导⼊和引⽤命名空间2)给类型起别名3)使⽤using声明的对象,可以确保在using代码块结束时,该对象所使⽤的资源被⾃动释放18.C#中,&和&&,|和||有什么区别1)&表⽰按位与运算,&&表⽰逻辑与,表⽰对两个布尔类型进⾏逻辑与操作,两边都为true才返回true2)|表⽰按位或运算,||表⽰逻辑或,表⽰对两个布尔类型进⾏逻辑或操作,两边条件⼀个位true就返回true19.C#中,is和as的区别is⽤于检查对线是否与给定的类型兼容;as⽤于对引⽤类型的变量进⾏类型转换20.什么是GC,为什么要⽤到GCGC是垃圾收集器,计算机程序运⾏过程中需要使⽤到内存,需要向操作系统申请内存空间,由于内存空间是有限的所以使⽤完程序需要释放内存。垃圾收集器就是⼀种⾃动进⾏内存管理的机制,使得程序员不⽤⼿动去分配内存和释放内存,由垃圾收集器全权负责内存管理⼯作,提⾼了程序的安全性、稳定性、开发效率21.什么是委托?事件跟委托是什么关系?委托是⼀个类,它定义了⽅法的类型,使得⽅法可以当做另⼀个⽅法的参数来传递事件也是⼀种委托中访问数据库的基本步骤是什么创建数据库连接对象打开连接创建命令对象,执⾏SQL语句关闭连接中,DataSet和DataReader的区别是什么1)DataSet数据集,表⽰内存中的数据库,DataSet在读取数据时会与数据库连接,⼀次性的读取所有的表数据到内存中,然后便断开连接2)DataReader数据读取器,在读取数据时是⼀⾏⾏读取,每次只会读取⼀⾏,直到读到最后⼀⾏,才断开数据库连接。在整个读取过程中,数据库要保持连接状态中常⽤的对象有哪些SqlConnection:连接对象,⽤于执⾏数据库连接SqlCommand:命令对象,⽤于执⾏SQL语句SqlDataAdapter:适配器对象,⽤于填充数据集和更新数据库SqlParameter:参数对象,⽤于执⾏参数化SQL语句SqlDataReader:读取器对象,⽤于从数据库中快速逐⾏读取数据SqlTransaction:事务对象,⽤于执⾏数据库事务第⼆部分:中的⾝份验证有哪些1)windows⾝份验证:会结合internet信息服务(IIS),为每个⽤户开启windows账户,通过windows账户验证⽤户安全2)Forms验证:通过web表单,为每⼀个⽤户创建⽤cookie保存的⾝份验证3)Passport验证:由Microsoft提供集中⾝份验证服务,通过将每个⽤户信息提供交给Passport登录服务⽹站进⾏⽤户⾝份验证er与ct有什么区别1)ServerTransfer:服务器端重定向,不能跨站点2)ct:客户端重定向,可以跨站点中页⾯之间传递值⼏种⽅式1)QueryString:通过URL中的查询字符串(?id=5&name=abc)优点:简单便捷缺点:安全性差,长度⼤⼩有限制2)Session:通过会话状态传值优点:当前会话中所有页⾯均可使⽤,能传递任何对象缺点:增加服务器负担容易超时丢失3)Cookie:通过客户端传值优点:读取该cookie的所有页⾯都可以使⽤缺点:只能够存储⽂本信息字符串,⼤⼩不能超过4KB4)Application:通过全局应⽤程序对象传值优点:整个应⽤程序都可以使⽤,且能够传递任何对象缺点:可能产⽣并发问题5)er:通过服务器端重定向传值优点:可以将与最初请求相关的所有数据传递给重定向页⾯缺点:资源消耗较⼤4.什么是code-behind技术代码隐藏技术,显⽰页⾯和逻辑页⾯分离,提⾼页⾯可维护性,提⾼开发效率中调⽤webservice的⽅法有哪些1)通过HTTP-GET请求调⽤2)通过HTTP-POST请求调⽤3)通过SOAP请求调⽤6.怎样理解web应⽤程序的“⽆状态编程”?web应⽤程序是基于http协议(具有⽆状态性),即客户端发送http请求服务器端,服务器收到请求将内容返回给客户端,在这⼀过程服务器端不会记录任何客户端的信息,请求结束后服务器也不会保留此次请求的任何信息,所有相关请求都会被释放,所有请求响应都是即时的n有什么缺点,可以⽤什么⽅法解决存储在IIS内存中,当IIS发⽣重启或进程回收时,session则会丢失解决办法是将session配置为“stateserver”或“SQLserver”,存储在状态服务进程或数据库中,可以避免丢失,但此时⽆法捕获Session_End事件中所有⾃定义⽤户控件都必须继承⾃哪个类?页⾯必须继承⾄哪个类1)⽤户控件基类:ntrol2)页⾯基类:9.向服务器发送请求有⼏种⽅式Get:向服务器请求数据Post:向服务器提交数据 Service有哪些优点1)Web Service是基于XML,与具体的语⾔平台⽆关,故可以实现跨平台,跨语⾔通信2)Web Service是采⽤SOAP协议(简单对象访问协议)进⾏通信,该协议基于HTTP协议,故可以实现跨防⽕墙通信3)Web Service可以很容易实现分布式应⽤程序缓存有⼏种实现⽅式1)页⾯输出缓存:将页⾯全部进⾏缓存2)页⾯局部缓存:将页⾯中的⼀部分放在⽤户控件,对该部分进⾏缓存3)数据缓存:使⽤cache类进⾏数据缓存4)客户端缓存:使⽤HttpCachePolicy类进⾏客户端缓存12.什么是ViewState,有什么作⽤视图状态:Web应⽤程序是⽆状态,每次从服务器请求⽹页时都会创建⼀个新实例,每次往返过程会丢失该页⾯和控件关联信息,为了客服这⼀局限性,页框架包含了状态管理功能,可以在往返之间保存页⾯和控件关联信息,这便是视图状态常见的后缀名有哪些aspx:页⾯ascx:⽤户控件asmx:web serviceashx:⼀般处理程序asax:全局应⽤程序配置六⼤对象有哪些Request、Response、Server、Session、Cookie、实现ajax请求的常⽤⽅法有哪些?有什么区别?$.get⽅法:通过get⽅式发送请求$.post:通过post⽅式发送请求$.ajax:可以使⽤指定⽅式发送请求16.⼿动实现ajax请求的步骤是什么1)创建XMLHttpRequest对象2)调⽤open⽅法初始化请求3)设置回调函数4)发送请求的各个字母代表什么含义,在MVC框架中起什么作⽤M:Model⽤户数据访问层V:View视图⽤于呈现页⾯C:Controller控制器⽤户处理请求逻辑请求的处理过程请求到达服务器后⾸先进⼊路由系统进⾏验证,如果请求的url地址格式符合路由定义,则将请求丢给控制器的⽅法进⾏处理。在⽅法中,可能会访问模型中的数据、处理相应的业务逻辑,然后⽅法将根据请求的内容返回⼀个适当的视图呈现给客户端19.请使⽤jquery实现⼀个复选框全选、反选功能function selectAll(){var checked = $("#chkall").get(0).checked;$(":checkbox:not(#chkall)").each(function(){ = checked;})}20.请使⽤jquery实现表格中隔⾏变⾊效果$(document).ready(function(){$("#table tr:even").css("background-color","orange");$("#table tr:odd").css("background-color","pink");})21.请使⽤jquery实现表格中⿏标移动的光棒效果$(document).ready(function(){$("#table tr").hover(function(){ $(this).css("background-color","颜⾊")},function(){ $(this).css("background-color","颜⾊")})})第三部分:SQLServer1.写出⼀条SQL语句,取出表A中第31条到第40条数据(SQLServer,以⾃动增长的ID作为主键,注意ID可能不是连续的)select * from(select *,row_number() over(order by id) row_no from A) t where row_no between 31 and 402.请说出SQLServer中三种表连接的⽅式inner join 、left join、right join区别及对最终查询结果的影响1)inner join:内联查询,查询出满⾜on条件两个表公告集合2)left join:左外联查询,查询出以左表为基础与右表进⾏关联,满⾜on条件结果左表数据完全保留,右表没有满⾜数据⽤null补齐3)right join:右外联查询,查询出以右表为基础与左表进⾏关联,满⾜on条件结果右表数据完全保留,左表没有满⾜数据⽤null补齐3.存储过程和函数的区别1)函数是嵌套在sql语句使⽤,存储过程⼤多数作为⼀个独⽴部分使⽤,exec调⽤2)函数限制⽐较多,不能⽤临时表只能⽤表变量,存储过程⼏乎所有的sql代码都可以使⽤3)函数针对完成单⼀功能,存储过程实现业务⽐较复杂的逻辑功能4)函数只能返回⼀个值或表对象,存储过程可以返回⼀个或多个输出参数4.数据库索引是什么,有什么作⽤数据库索引是⼀列或多列的排序结构,作⽤类似⼀本书⽬录可以加快查询表中数据的速度5.数据库索引的分类和区别1)聚集索引:表⽰索引中的结构与数据库表中相应⾏数据在物理磁盘存储的顺序相同的索引2)⾮聚集索引:表⽰索引中的结构与数据库表中相应⾏数据在物理磁盘存储的顺序不相同的索引6.什么是事务,它有什么特性事务:执⾏单个逻辑功能的⼀组操作称为事务,事务是最⼩的⼯作单元,⽆论执⾏成功或失败都作为⼀个整体进⾏⼯作事务的ACID特性:1)原⼦性(Atomicity)即不可再分,要么都执⾏要么都不执⾏2)⼀致性(Consistency)在事务开始之前结束之后,所有的数据都保持⼀致性3)隔离性(Isolution)事务执⾏互不⼲扰,⼀个事务不可能看到其它事务运⾏的数据4)持久性(Durability)事务完成后,对数据库的更改保持长久不会被回滚7.使⽤事务的最⼤好处是什么可以保证数据完整性和⼀致性,要么全部执⾏成功,要么全部执⾏失败ver中,触发器分哪⼏种?分别代表什么含义分两⼤类:1)DML触发器当数据库发⽣数据操作语⾔(DML)事件时将调⽤DML触发器,DML事件包括INSERT语句、UPDATE语句、DELETE语句DML触发器⼜分为:after触发器(在执⾏了INSERT、UPDATE、DELETE语句操作之后触发)after触发器只能定义在表上instead of触发器(表⽰并不执⾏INSERT、UPDATE、DELETE⽽是执⾏触发器本⾝)instead of触发器可以在表上定义也可以在视图上定义2)DDL触发器当数据库发⽣数据定义语⾔(DDL)事件时将调⽤DDL触发器。DDL事件主要与以关键字CREATE、ALTER、DROP开头的sql语句和truncate有什么区别1)delete可以带where条件,⽤于删除指定条件的数据;truncate不能带where条件2)delete删除所有数据后,下⼀次插⼊数据紧接着⾃增ID数值;truncate删除所有数据后,下⼀次插⼊数据是重置的数值和union all的区别1)union:合并时去掉重复数据2)union all:合并时对重复数据不作处理ver,有⼀张学⽣成绩表,有三个字段:学⽣ID,学⽣姓名,考试成绩。如何查询出成绩排在前三名的学⽣(注意:可能有并列名次)select * from (select *,dense_rank() over(order by 学⽣成绩 desc) no from 学⽣成绩表) t where no<=ver中,向⼀个表中插⼊新数据,如何得到⾃增长字段的当前值select @@ver中,游标有什么作⽤?如何知道游标已经到了最后?作⽤:从包含多条记录结果中每次提取⼀条记录,类似程序代码中的遍历循环,每次只读取⼀⾏的数据当全局变量@@fetch_status值不等于0,表⽰游标已经到了最后第四部分:算法1.请⽤递归算法实现计算1+2+3+...+100的结果static void Main(string[] args){int total = sum(100);ine(total);}static int sum(int x){ if(x<=1) return x; else return x+sum(x-1);}2.请实现⼀个冒泡排序算法int temp;for(int i = 0;i<-1;i++){ for(int j=i+1;j<;j++) { if(num[j]
发布评论