.Net程序员面试试题
1:简述private protected public internal修饰符的访问权限?
private:私有成员在类的内部可以访问;
protected:受保护的成员,在类的内部和继承类中可以访问;
public:没有限制,公开的访问权限;
internal:在程序集内部可以访问;
2:简述ASP.NET页面之间传值的几种方式?
Querystring():
Cookie:
Session:
Server.Transfer:
3:C#中什么是委托,委托和事件有什么关系?
委托可以把一个方法作为参数传递给另外一个方法,委托可以理解为指向一个函数 的函数指针。
委托是一种类型,而事件是一个对象,事件只能ADD和remove自己,而不能赋值。事件只能+=或者-=而不能用=。
事件的内部其实就是一个私有的委托和两个方法:add()和remove();
4:overload 和override的区别?
重载是方法 的名称相同而方法的参数的个数和参数的类型不同,方法进行多次重载来适应不同的需求方法重载是面向过程的概念;
重写是进行基类中的函数的重写,override是面向对象的概念;
5:什么是三层架构?
划分层次的目的是“高内聚,低耦合”的思想;
UI层,就是展现给用户的界面;
BLL层,主要是对业务逻辑的操作;
DAL层,直接操作数据库,对数据库进行增删改查;
三层其实是多层的一种特例,层层之间是向下的依赖关系;
优点是:分工明确调理清晰,易于调试,而且具有可扩展性;
6.什么是MVC?
模型
视图
控制器
7:类和结构的区别?
类可以被实例化,属于引用类型,是分配在内存的堆上。类是引用传递;
结构属于值类型,分配在内存的栈上,结构是复制传递。(Int32 Boolean都属于结构体)
8:堆和栈的区别?
栈是在编译期间就分配好内存空间,所以代码中必须有对栈的大小的明确定义,局部值类型变量,值类型参数等都在栈内存中;
堆是在程序运行期间动态分配内存,他可以根据程序的运行情况来确定需要分配的内存的大小。
9:什么是GC?
GC是垃圾回收器,程序员可以不用担心内存管理,垃圾回收器可以自动进行管理。GC只能处理托管内存资源的释放。对于非托管资源不能使用GC垃圾回收器,必须由程序员手动回收。
10:值类型和引用类型的区别?
将一个值类型变量赋值给另一个值类型变量的时候将复制包含的值,引用类型变量的赋值只复制对象的引用,而不复制对象本身;
值类型不可能派生出新的类型,所有的值类型均隐式派生自System.ValueType.但是与引用类型相同的是结构可以实现接口;
值类型不可能包含null值;
每一种值类型均有一个隐式的构造函数来初始化该类型的默认值;
11:接口(interface)和抽象类(abstract class)的区别?
相同点:
都不能直接被实例化,都可以通过继承实现其抽象方法;
不同点:
接口支持多继承,抽象类不支持多继承;
接口只能定义方法不能有方法的实现,抽象类不仅可以定义方法还可以有方法的实现;
接口可以用作值类型和引用类型,抽象类只能用作引用类型;
接口只包含方法,属性,索引器,事件的签名,但是不能定义字段和包含实现的方法;抽象类可以定义字段,属性,包含有实现的方法;
12:using关键词有什么作用?
using可以声明命名空间的引用;
using可以实现非托管资源的释放,实现了IDisposiable的类在using中创建,using结束后会自动调用该对象的Dispose方法释放资源。
其实这时候using相当于try 。。。。。finaly;
13:xml和html的区别?
xml区分大小写,html可以不区分;
xml不可以省略结束标签,html可以在合适的情况下省去结束标签;
xml中属性值必须写在引号中,html中引号可用可不用;
xml中所有的属性必须赋值,html中有些属性可以不赋值;
14:写出一条sql语句来查询出表A中第30--40条数据(id为主键,可能不连续)?
select top 10 * from A where id not in (select top 30 id from A);
15:面向对象有什么特性?
封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承:
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。
多态:
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
16:const和readonly的区别?
const关键词用于修改字段或者局部变量的声明,他指定字段或者局部变量的值不能被修改,常数的声明引入指定类型的一个或者多个常数;
const关键字对数据成员的声明必须包含初始值,并且初始值必须是一个常量表达式;
const成员可以使用另外一个const成员来初始化前提是两者之间没有任何依赖关系;
readonly和const不同的是const字段只能在字段的声明中初始化,readonly字段可以在声明或者构造函数中初始化;
const字段是编译时常数,而readonly字段可用于运行时常数;
17:post和get的区别?
get的参数可以再浏览器地址栏中显示,而post则不会;
post提交的页面再点击[刷新]按钮的时候,浏览器一般会显示“是否要重新提交”而get则不会;
get的页面可以被搜索引擎抓取到,而post则不可以;
post可以提交的数据量可以非常大,而get的数据非常小(一般几k);
post可以进行文件的提交,而get则不可以;
18:一个数组:1,1,2,3,5,8,13,21,34......m,求第30位数字是什么?用递归实现。
static int F(int n)
{
if(n==1)
{
return 1;
}
if(n==2)
{
return 1;
}
return F(n-2) + F(n-1);
}
19:DataSet和DataTable的区别?
DataSet可以看做是一个暂存区,可以把从数据库中查询出来的数据保留起来,甚至可以把整个数据库显示出来。DataSet是存储在内存中的;
DataSet可以包含若干个DtatTable,DataTable可以包含若干的DataRow;
20:String和StringBuilder的区别?
String 在运算时(赋值,拼接)会产生一个新的实例,而stringbuilder则不会,所以在进行大量字符串拼接或者频繁对某一字符串进行操作的时候最好使用stringbuilder;
两个类的工作原理不同:string是一种传统的修改字符串的方式,他可以完成把一个字符串添加到另外一个字符串中,但是在.net框架下这样的操作划不来,系统要先把两个字符串写入内存,接着删除原来的string对象然后再创建一个string对象,并读取内存中的数据赋值给该对象;
而stringbuilder提供了一个Append方法,能在已有的对象的原来地方进行字符串的修改;
.Net程序员面试试题的更多相关文章
- PHP程序员面试技巧之口试题分享
网络上流传很广的一部分php工程师面试题目,有些phper们认为这些很形式,天下面试题目一大把,不能考核一个人的真实水平,其实细细研究起来,无论怎样,能存在就表明其有存在的价值.下面小编整理了12条P ...
- ASP.NET的几个试题(《C#与.NET程序员面试宝典》)
更多参考:博客园笔记 :ASP.NET是什么 ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft.NET Framework中一套用于生成Web应用程序和 ...
- 《Java程序员面试笔试宝典》终于在万众期待中出版啦~
<Java程序员面试笔试宝典>终于在万众期待中出版啦~它是知名畅销书<程序员面试笔试宝典>的姊妹篇,而定价只要48元哦,恰逢求职季节,希望本书的出版能够让更多的求职者能够走进理 ...
- Java程序员面试题集(136-150)(转)
转:http://blog.csdn.net/jackfrued/article/details/17740651 Java程序员面试题集(136-150) 摘要:这一部分主要是数据结构和算法相关的面 ...
- Java程序员面试题集(71-85)(转)
转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ...
- Java程序员面试题集(1-50)(转)
转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ...
- 《程序员面试金典(第5版)》【PDF】下载
<程序员面试金典(第5版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382252 内容简介 本书作者Gayle Laakma ...
- JAVA程序员面试宝典
程序员面试之葵花宝典 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题 ...
- 新书出版 |《Oracle程序员面试笔试宝典》
新书出版 |<Oracle程序员面试笔试宝典> <Oracle程序员面试笔试宝典> 丛书[数据库 面试 笔试宝典]已在京东.淘宝和天猫预售,一共 5 本,目前市场上已有4本,丛 ...
随机推荐
- finally 对 return 值没有影响
public int gettest(ref int i, ref int k) { int j = 0; try { return i / j; } catch (Exception Ex) { k ...
- 事半功倍之StyleCop(一)
事半功倍之StyleCop(一) 前言 曾几何时,你是否在看别人代码的时候总是在抱怨代码没有注释,命名不规范,代码风格不统一,代码可读性差?是否有一个适合团队开发规范的检查工具? 答案就是大名鼎鼎的S ...
- 用bat启动sqlserver服务
声明下这个脚本不是我写的,忘了是从哪看到的了,在此分享给大家,因为在我的理解中技术就是用来分享的,,希望原创作者看到了不要介意. 1.创建个文本,将后缀名改成.bat 2.将下边语句粘贴进去,然后保存 ...
- AngularJS html5Mode与ASP.NET MVC路由
AngularJS html5Mode与ASP.NET MVC路由共存 前言 很久之前便听说AngularJS,非常酷,最近也比较火,我也在持续关注这个技术,只是没有认真投入学习.前不久公司找我们部门 ...
- 设计模式学习--Factory Method
What Factory Method:定义一个创建对象的接口,让子类来决定实例化哪一个类.Factory Method使一个类的实例化延迟到其子类. Why Factory Method是一个比較基 ...
- IE6常见bug
1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定mar ...
- 提高C#编程水平的50个要点 你掌握了多少呢?
提高C#编程水平的50个要点,程序员都是追求极致的完美主义者,下面的这些注意点和要点,你都掌握运用了多少呢? 总是用属性(Property)来代替可访问的数据成员 在 readonly 和 const ...
- CQRS架构如何实现高性能
CQRS架构如何实现高性能 CQRS架构简介 前不久,看到博客园一位园友写了一篇文章,其中的观点是,要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺.对于这3点,我觉得很有道理. ...
- 苹果公司的新的编程语言 Swift 高级语言(十五)--协议
协议定义了适合某个特定任务或功能须要的方法.属性和其他需求的一个蓝图.协议本身不提供这些需求的实现,它仅仅是描写叙述了一个任务或功能实现的蓝图. 协议与java 语言中的接口定义类似,都是描写叙述了一 ...
- MVC之Ajax
MVC之Ajax如影随行 2014-07-04 10:34 by 书洞里的猫, 15 阅读, 0 评论, 收藏, 编辑 一.Ajax的前世今生 我一直觉得google是一家牛逼的公司,为什么这样说呢? ...