.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本,丛 ...
随机推荐
- [CLR via C#]5.3 值类型的装箱和拆箱
原文:[CLR via C#]5.3 值类型的装箱和拆箱 在CLR中为了将一个值类型转换成一个引用类型,要使用一个名为装箱的机制. 下面总结了对值类型的一个实例进行装箱操作时内部发生的事: 1)在托管 ...
- Require.JS 2.0
就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升 ...
- 小议 js 下字符串比较大小
原文:小议 js 下字符串比较大小 之前群里有人问如何比较两个时间大小,他的时间格式是 2014-08-08 而不是 2014-8-8.所以我给的方法是 直接比较,如: var a = "2 ...
- 自动编译CoffeeScript的Gruntfile.js
比如把coffee文件写在coffee/controller/文件夹下,新建js/controller文件夹,使用grunt运行项目,将自动编译coffee到相应的js文件夹下. module.exp ...
- 大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
做盗版.转载请添加源http://blog.csdn.net/yanlintao1 请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 首先进行样式展示希望对大家有 ...
- Util应用程序框架公共操作类
随笔分类 - Util应用程序框架公共操作类 Util应用程序框架公共操作类 Util应用程序框架公共操作类(五):异常公共操作类 摘要: 任何系统都需要处理错误,本文介绍的异常公共操作类,用于对业务 ...
- leetcode[87] Partition List
题目:给定一个链表和一个数x,将链表中比x小的放在前面,其他的放在后头.例如: Given 1->4->3->2->5->2 and x = 3,return 1-> ...
- 31、Thinking in Java
- hadoop编程技巧(3)---定义自己的区划类别Partitioner
Hadoop代码测试环境:Hadoop2.4 原则:在Hadoop的MapReduce过程.Mapper阅读过程完成后数据.它将数据发送到Partitioner.由Partitioner每个记录应当采 ...
- JS判断鼠标向上滚动还是向下滚动
js如何判断滚轮的上下滚动,我们应该都见到过这种效果,用鼠标滚轮实现某个表单内的数字向上滚动就增加,向下滚动就减少的操作,这种效果是通过js对鼠标滚轮的事件监听来实现的.今天简单的研究了一下如何使用j ...