⾯试-常见问题归纳整理
第⼀部分:C#语⾔
1.类和结构的区别
1)类是引⽤类型,结构是值类型
2)类可以继承,结构不能继承,两者都能实现接⼝
3)类可以有显⽰的⽆参构造函数,结构则不能
4)类可以有析构函数,结构则不能
5)结构中不能有实例字段初始值设定,类⽆限制
6)类的构造函数⾥可以不⽤对所有字段进⾏初始化,结构必须要对所有字段进⾏初始化
2.C#中类成员访问修饰符有哪些
public:公有的,任何位置都可以访问
private:私有的,只有类的内部才能访问
protected:受保护的,只有类的内部或派⽣类中可以访问
internal:内部的,同⼀个程序集(命名空间)⾥⾯可以访问
protected internal:内部受保护的,同⼀个程序集⾥⾯或不同程序集派⽣类中可以访问
3.⾯向对象三⼤特征是什么
封装、继承、多态
4.抽象类和接⼝的区别
相同点:
1)不能被实例化
2)可以包含任意个抽象成员
不同点:
1)抽象类是类,具有类的特点:单基类继承,多接⼝实现;接⼝不是类,只能继承多个接⼝
2)抽象类中可以包含已经实现的⾮抽象成员;接⼝中所有成员都是抽象的,没有实现的
5.接⼝可以包含哪些成员sql包含哪几个部分
⽅法、属性、事件、索引器
6.什么是装箱和拆箱
装箱:将值类型转换为object类型,或由此值类型实现的任何接⼝类型
拆箱:将object类型或接⼝类型转换为实际的值类型
7.C#中,哪些类型是值类型,哪些类型是引⽤类型
值类型:结构、枚举
引⽤类型:类、接⼝、委托、数组、字符串
8.值类型和引⽤类型的区别
1)值类型⼀般存储在线程栈上,引⽤类型存储在托管堆上
2)值类型的变量本⾝实际存储的是实际数据,引⽤类型的变量本⾝实际存储的是引⽤地址,实际的数据存储在托管堆上
3)在作为⽅法参数传递时,值类型传递的是值的副本在⽅法中对其修改不会影响原始值。引⽤类型参数传递的是引⽤地址,在⽅法中对该参数进⾏修改会对托管堆上该地址实际数据进⾏修改,从⽽会影响原始值
9.C#中的基本数据类型有哪些
值类型:
1)有符号整数(由⼩到⼤):sbyte、short、int、long
2)⽆符号整数(由⼩到⼤):byte、ushort、uint、ulong
3)浮点型:float、double、decimal
4)布尔型:bool
5)字符型:char
引⽤类型:
1)string、object
10.重写和重载的区别
重写:⼦类对基类中的虚成员(虚⽅法、虚属性等)或抽象成员(抽象⽅法、抽象属性等)进⾏覆盖重新实现
重载:同⼀个类中,同名⽅法具有不同的参数签名(参数个数、参数的数据类型、参数是否具有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:表⽰只读字段,其修饰是在运⾏时计算的,在对象的实例构造函数或类的静态构造函数⾸次被调⽤时计算,之后字段的值不能被更改
14.string 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才返回true
2)|表⽰按位或运算,||表⽰逻辑或,表⽰对两个布尔类型进⾏逻辑或操作,两边条件⼀个位true就返回true
19.C#中,is和as的区别
is⽤于检查对线是否与给定的类型兼容;as⽤于对引⽤类型的变量进⾏类型转换
20.什么是GC,为什么要⽤到GC
GC是垃圾收集器,计算机程序运⾏过程中需要使⽤到内存,需要向操作系统申请内存空间,由于内存空间是有限的所以使⽤完程序需要释放内存。
垃圾收集器就是⼀种⾃动进⾏内存管理的机制,使得程序员不⽤⼿动去分配内存和释放内存,由垃圾收集器全权负责内存管理⼯作,提⾼了程序的安全性、稳定性、开发效率
21.什么是委托?事件跟委托是什么关系?
委托是⼀个类,它定义了⽅法的类型,使得⽅法可以当做另⼀个⽅法的参数来传递
事件也是⼀种委托
22.ADO.NET中访问数据库的基本步骤是什么
创建数据库连接对象
打开连接
创建命令对象,执⾏SQL语句
关闭连接
23.ADO.NET中,DataSet和DataReader的区别是什么
1)DataSet数据集,表⽰内存中的数据库,DataSet在读取数据时会与数据库连接,⼀次性的读取所有的表数据到内存中,然后便断开连接
2)DataReader数据读取器,在读取数据时是⼀⾏⾏读取,每次只会读取⼀⾏,直到读到最后⼀⾏,才断开数据库连接。在整个读取过程中,数据库要保持连接状态
24.ADO.NET中常⽤的对象有哪些
SqlConnection:连接对象,⽤于执⾏数据库连接
SqlCommand:命令对象,⽤于执⾏SQL语句
SqlDataAdapter:适配器对象,⽤于填充数据集和更新数据库
SqlParameter:参数对象,⽤于执⾏参数化SQL语句
SqlDataReader:读取器对象,⽤于从数据库中快速逐⾏读取数据
SqlTransaction:事务对象,⽤于执⾏数据库事务
第⼆部分:ASP.NET
1.ASP.NET中的⾝份验证有哪些
1)windows⾝份验证:ASP.NET会结合internet信息服务(IIS),为每个⽤户开启windows账户,通过windows账户验证⽤户安全
2)Forms验证:ASP.NET通过web表单,为每⼀个⽤户创建⽤cookie保存的⾝份验证
3)Passport验证:由Microsoft提供集中⾝份验证服务,通过将每个⽤户信息提供交给Passport登录服务⽹站进⾏⽤户⾝份验证
2.Server.Transfer与Response.Redirect有什么区别
1)ServerTransfer:服务器端重定向,不能跨站点
2)Response.Redirect:客户端重定向,可以跨站点
3.ASP.NET中页⾯之间传递值⼏种⽅式
1)QueryString:通过URL中的查询字符串(Default.aspx?id=5&name=abc)
优点:简单便捷
缺点:安全性差,长度⼤⼩有限制
2)Session:通过会话状态传值
优点:当前会话中所有页⾯均可使⽤,能传递任何对象
缺点:增加服务器负担容易超时丢失
3)Cookie:通过客户端传值
优点:读取该cookie的所有页⾯都可以使⽤
缺点:只能够存储⽂本信息字符串,⼤⼩不能超过4KB
4)Application:通过全局应⽤程序对象传值
优点:整个应⽤程序都可以使⽤,且能够传递任何对象
缺点:可能产⽣并发问题
5)Server.Transfer:通过服务器端重定向传值
优点:可以将与最初请求相关的所有数据传递给重定向页⾯
缺点:资源消耗较⼤
4.什么是code-behind技术
代码隐藏技术,显⽰页⾯和逻辑页⾯分离,提⾼页⾯可维护性,提⾼开发效率
5.ASP.NET中调⽤webservice的⽅法有哪些
1)通过HTTP-GET请求调⽤
2)通过HTTP-POST请求调⽤
3)通过SOAP请求调⽤
6.怎样理解web应⽤程序的“⽆状态编程”?
web应⽤程序是基于http协议(具有⽆状态性),即客户端发送http请求服务器端,服务器收到请求将内容返回给客户端,在这⼀过程服务器端不会记录任何客户端的信息,请求结束后服务器也不会保留此次请求的任何信息,所有相关请求都会被释放,所有请求响应都是即时的
7.session有什么缺点,可以⽤什么⽅法解决
存储在IIS内存中,当IIS发⽣重启或进程回收时,session则会丢失
解决办法是将session配置为“stateserver”或“SQLserver”,存储在状态服务进程或数据库中,可以避免丢失,但此时⽆法捕获Session_End事件
8.ASP.NET中所有⾃定义⽤户控件都必须继承⾃哪个类?页⾯必须继承⾄哪个类
1)⽤户控件基类:System.Web.UI.UserControl
2)页⾯基类:System.Web.UI.Page
9.向服务器发送请求有⼏种⽅式
Get:向服务器请求数据
Post:向服务器提交数据
10.Web Service有哪些优点
1)Web Service是基于XML,与具体的语⾔平台⽆关,故可以实现跨平台,跨语⾔通信
2)Web Service是采⽤SOAP协议(简单对象访问协议)进⾏通信,该协议基于HTTP协议,故可以实现跨防⽕墙通信
3)Web Service可以很容易实现分布式应⽤程序
11.ASP.NET缓存有⼏种实现⽅式
1)页⾯输出缓存:将页⾯全部进⾏缓存
2)页⾯局部缓存:将页⾯中的⼀部分放在⽤户控件,对该部分进⾏缓存
3)数据缓存:使⽤cache类进⾏数据缓存
4)客户端缓存:使⽤HttpCachePolicy类进⾏客户端缓存
12.什么是ViewState,有什么作⽤
视图状态:Web应⽤程序是⽆状态,每次从服务器请求⽹页时都会创建⼀个新实例,每次往返过程会丢失该页⾯和控件关联信息,为了客服这⼀局限性,ASP.NET页框架包含了状态管理功能,可以在往返之间保存页⾯和控件关联信息,这便是视图状态
13.ASP.NET常见的后缀名有哪些
aspx:页⾯
ascx:⽤户控件
asmx:web service
ashx:⼀般处理程序
asax:Global.asax全局应⽤程序配置
14.ASP.NET六⼤对象有哪些
Request、Response、Server、Session、Cookie、Application
15.jquery实现ajax请求的常⽤⽅法有哪些?有什么区别?
$.get⽅法:通过get⽅式发送请求
$.post:通过post⽅式发送请求
$.ajax:可以使⽤指定⽅式发送请求
16.⼿动实现ajax请求的步骤是什么
1)创建XMLHttpRequest对象
2)调⽤open⽅法初始化请求
3)设置回调函数
4)发送请求
17.MVC的各个字母代表什么含义,在MVC框架中起什么作⽤
M:Model⽤户数据访问层
V:View视图⽤于呈现页⾯
C:Controller控制器⽤户处理请求逻辑
18.MVC请求的处理过程
请求到达服务器后⾸先进⼊路由系统进⾏验证,如果请求的url地址格式符合路由定义,则将请求丢给控制器的⽅法进⾏处理。在⽅法中,可能会访问模型中的数据、处理相应的业务逻辑,然后⽅法将根据请求的内容返回⼀个适当的视图呈现给客户端
19.请使⽤jquery实现⼀个复选框全选、反选功能
function selectAll()
{
var checked = $("#chkall").get(0).checked;
$(":checkbox:not(#chkall)").each(function(){
this.cheked = checked;
})
}
20.请使⽤jquery实现表格中隔⾏变⾊效果
$(document).ready(function(){
$("#table tr:even").css("background-color","orange");
$("#table tr:odd").css("background-color","pink");
})
21.请使⽤jquery实现表格中⿏标移动的光棒效果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。