.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本,丛 ...
随机推荐
- uboot中raise:Signal #8 caught的根本原因
在移植uboot时编译一切正常,但uboot启动中载入自己写的网卡驱动出现故障,一直在打印raise:Signal #8 caught google 百度了一番,也有非常多人遇到了这个问题,大家都说 ...
- 【转】height,posHeight和pixelHeight区别
height 返回高度 带单位 posHeight 不带单位的数字 pixelHeight 转换成像素后的数字 不带单位 更多资料 http://www.1fan.com.cn
- cocos2d-x 3.0 rapidJson 解析操作应该注意的细节
Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstanc ...
- 由一个LED闪烁问题发现的MTK的LED driver中存在的问题
今天依据最新的需求要对LED灯的提示闪烁频率进行改动,将之前默认的2000ms改为10000ms,可是改动之后没有产生预料中的效果,而是变成了常量,百思不得其解,最后还是read the fuckin ...
- Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建 Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...
- 实例学习SSIS(四)--使用日志记录和错误流重定向
原文:实例学习SSIS(四)--使用日志记录和错误流重定向 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习 ...
- .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)
原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数 ...
- 在Android中自动实现横竖屏切换的问题
http://developer.android.com/training/basics/supporting-devices/screens.html参照Google推荐的做法 在你项目的res 文 ...
- redmine的邮件配置
redmine的邮件配置 2012-01-04 18:09:21| 分类: 默认分类|举报|字号 订阅 redmine里要用到邮件通知,本来以为很是简单,网上也有许多教程,谁知忙活了一下午, ...
- knockout同时绑定多个实体demo
1.我们会遇到一种情景:一个页面实现复杂的功能时,我们往往会使用部分页(.netmvc中的@renderaction,java中ajax请求jsp页面). 如果子页面也使用knockout绑定数据会不 ...