2015-01-16 .Net 中级软件工程师 笔试题
一 C#方面
1.请简述多线程需要考虑的主要因素
答:1.线程管理
同一核上的两个线程不会以两倍的时长完成,可能需要用两倍再加10 %左右的时间来完成。与一个线程相比较的话,三个线程在同一核上想占用100 %的CPU使用率可能会需要3.25——3.5倍的时长来完成。所以,要怎样分配正在运行的线程数量呢?有一个办法是在线程之间建立一个共享的旗语对象。在线程开始运行前,它会尝试调用旗语的WaitOne模式,并在完成后释放旗语。对CPU的核数量设置旗语限制,(使用EnvironmentProcessorCount功能限定);这将防止您的系统在同一时间运行的线程数多于核数量。与此同时,从线程池中拉出线程将确保您不会在同一时间创建过多线程。如果一次创建线程过多,即使他们并没运行,那也是浪费系统资源。
2.数据完整性
要担心的问题是竞争条件和死锁。多个线程试图在同一时间更新相同的对象就会造成竞争条件,这将招致麻烦。在.NET架构中,最简单也最常见的解决竞争条件的方法是使用“临界区”。
死锁的话,对编写的代码加以认真检查
2.抽象类和接口的区别
答:声明方法的存在而不去实现他的类就叫做抽象类,用于创建一下体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例,然而可以创建一个变量,类型是抽象类,并让它指向具体子类的实例。不能有抽象构造函数,和抽象静态方法。abstract子类为它们父类所有的抽象方法提供实现,否则它们也是抽象类。接口是抽象类的变体,在接口中,所有的方法都是抽象的。多继承性可通过这样的接口获得。接口没有程序体,只可以定义static final成员变量。接口的实现于子类相似,除了该实现类不能从接口定义中继承行为。
3.为什么不提倡Cath()?必须要用的时候如何使用为好?
答:只捕捉特定环境,特定条件下的异常,并进行处理。不能捕捉所有异常,因为有些异常是我们所无法预料到的,比如,内存溢出或其他错误,这种情况下,不应该让系统以一种未知状态继续运行。不要使用try...catch进行流程处理。如果可能的话,尽量要把循环写在try...catch内部,而不要把try...catch放到循环内部。
如果是try...catch中套着try...catch,异常处理机制是从内部的try...catch...往外部抛的,最先是在内部进行捕获、处理。
4.说明string str=null与string str=""在内存分配上的去吧
答:string str=null不分配内存,string str=""分配字符串为空的内存
5.类(class)与结构(struct)的异同·
答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。
结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。
6.简述对emoting和webservice两项技术的理解以及实际中的应用
答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
7.简述private,protected,public,internal修饰符的访问权限
答 . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
8.C#中的委托是什么?事件是不是一种委托?
答:委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的指针。
事件是一种特殊的委托
9.override与重载的区别
答:覆写(Override)的两个函数的函数特征相同
重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。
10.用.net的b/s结构的系统,您是用几层开发,每一层之间的关系以及为什么要这样分层?
答:从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问
业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关
表示层:是系统的UI部分,负责使用者与整个系统的交互。
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。
分层式结构究竟其优势何在?
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
11..net中读写数据库需要用到的那些类?它们的作用?
答:DataSet数据存储器。
DataCommand执行语句命令。
DataAdapter数据的集合,用语填充。
12.简单用代码举例说明什么叫多态。
Class Person{ Public void Eat()
{
Console.WriteLine("Person Eat Foot");
}
} Class Teacher
{
Public void Eat(
{
Console.WriteLine("Teacher Eat Mantou");
}
} Public Class Test{
Public static void Main(string args[]){
Person a=new Teacher():
a.eat(); } }
13.简单用代码举例说明什么叫继承。
Class Person{ Public string Name;
Public int Age; Public Person(string Name,int Age)
{
this.Name=Name;
this.Age=Age;
Console.WriteLine(Name);
Console.WriteLine(Age); }
} Class Teacher:Person
{
private int _id;
Public Teacher(string Name,int Age,int _id)
:base(Name,Age)
{
this._id=_id;
Console.WriteLine(_id):
}
} Public Class Test{
Public static void Main(string args[]){
Teacher Tom=new Teacher("Tom",22,01) } }
二 SQLSERVER方面
1.内容重复性高的字段上建立索引,查询效率会下降还是提高?为什么?
答:下降,索引就是为了从大量数据中提取需要的少量数据,推断到极端条件下,假设字段值都是一样的,索引是没有意义的
2.自定义函数和存储过程的区别是什么,什么情况下只能用自定义函数,什么情况下只能用存储过程?
答:自定义函数:1. 可以返回表变量2. 限制颇多,包括不能使用output参数;不能用临时表;函数内部的操作不能影响到外部环境;不能通过select返回结果集;不能update,delete,数据库表;3. 必须return 一个标量值或表变量,自定义函数一般用在复用度高,功能简单单一,争对性强的地方。
存储过程:1. 不能返回表变量2. 限制少,可以执行对数据库表的操作,可以返回数据集3. 可以return一个标量值,也可以省略return,存储过程一般用在实现复杂的功能,数据操纵方面。
3.简述分区表
答:将大表的数据分成称为分区的许多小的子集。分区表在逻辑上是一个表,而物理上是多个表
4.分别说明什么应用环境下如何使用游标,事务,锁,索引,以及聚簇索引和非聚簇索引的区别
答:
5.举例说明左连接和内连接的区别
答:区别在于左连接比内连接多出左表不符合条件的数据
6.比较说明数据库设计的第一范式,第二范式,第三范式的优缺点
答:
- 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 通俗的理解是字段还可以再分吗?如过不能,则是符合1NF的设计。
- 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 简单的解释,比如你和一个女生约会建立一张表,不用每条约会记录都记录她的身高、体重,将身高体重单独的存在一张表中供查询即可。
- 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来
7.写出一条sql语句:取出A表中的第x到第xx记录(sqlserver以自动增长的id作为主键,注意,id可能为不连续的)
三 WEB方面
1.简述HttpModule和HttpHandler?
2.请描述一下ASP.NET页面生命周期?
3.简述列举你知道的Web优化措施?
4.简述Http请求的过程(从用户在浏览器输入网址到看到最终页面所经历的的过程,描述中必须包含IIS及ASP.NET引擎部分)
5.Javascipt中拼接大量字符串,考虑一个高效的办法
6.AJAX问题
1)为什么使用如下三种方式创建对象?并简述对XMLHttpRequest的理解
var Ajax=function(){
return Try.these{
funtion(){return new XMLHttpRequest()};
funtion(){return new ActiveObject('Msxml2.XMLHTTP')};
funtion(){return new XMLHttpRequest('Microsoft.XMLHTTP')};
}||false;
};
2)补充如下代码
ajax=new Ajax; var url="/MoreCondition.aspx?category="+type+""; ajax.onreadystatechange=(______________); ajax.open(___________________); _________________________;
3)作为Ajax的回调函数,如下函数有什么问题?
funtion callback() { document.all('JobInfo').value=ajax.responseText; }
2015-01-16 .Net 中级软件工程师 笔试题的更多相关文章
- 2015-01-19 .Net 软件工程师 笔试题
填空题 1.String是__类型(值类型或引用类型) 2.int的基类是__ 3.实现__的类,可以应用foreach语句 4.要输出一段XML文档,用__类来实现能够确保输出正确格式的XML,输出 ...
- c#软件工程师笔试题
近来有打算重新找工作,还没提离职,投了几家公司简历,其中一家比较中意的公司给发了面试题,其实,好像是好几天前的事了,主要是Gmail邮箱很少用,所以一直都没去看,今天看到题目给解了. 题目如下: 题目 ...
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- 转:一份基础的嵌入式Linux工程师笔试题
一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...
- PHP工程师笔试题
PHP工程师笔试题 提示:请将答案写在另外一张空白纸上,并在30分钟内完成. PHP 请写出include.require.include_once.require_noce的区别. include是 ...
- 复盘鼎甲科技2020web开发工程师-笔试题(校招)
复盘鼎甲科技2020web开发工程师-笔试题(校招) 本试卷以W3C规范为准,JavaScript使用ES5标准,除特别说明外,不考虑各个浏览器之间差异. 一.多项选择题 以下标签是行内元素(inli ...
- iOS开发工程师笔试题
iOS开发工程师笔试题 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以 ...
- 华为2018软件岗笔试题之第一题python求解分享
闲来无事,突然看到博客园首页上有人写了篇了华为2018软件岗笔试题解题思路和源代码分享.看了下题目,感觉第一题能做出来,就想着用刚刚学的python试着写一下,花费的时间有点长~~,看来又好长时间没练 ...
- Java高级软件工程师面试题
Java 软件高级工程师笔试题 [智力部分](30分) 1. 烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分) 两头同时烧 2. 4,4,10,10,加减乘除,怎么出24点?四个数字分别 ...
随机推荐
- CURL命令详解
curl命令是一个强大的网络工具,它能通过http,ftp等方式下载.上传文件.其中curl远不止这些功能,大家可以通过阅读手册获取更多的信息,类似的工具还有wget. curl命令使用了libcur ...
- angularjs checkbox 框的操作
前言:今天遇到一个问题,需要对多选按钮进行操作,作为js菜鸟,只能做自己慢慢琢磨了-- <label class="checkbox-inline custom-checkbox no ...
- laravel的学习感受
学习laravel也有一段时间了自己感觉还是不怎么难就是自己的代码不熟悉所以很多的不怎么会.
- 关于node.js杂记
https://gitlore.com/page/gitlore-git/nodejs/index.html[node.js中文文档] ////// https://gitlore.com/in ...
- this 的值到底是什么?
你可能遇到过这样的 JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // ...
- c# 无法加载 DLL xxxxxxxx找不到指定的模块。 (异常来自HRESULT:0x8007007E)。的一个解决方法
最近在做一个程序,想把某些功能用C++写成DLL供C#调用.但是无法如何都无法调用,提示"无法加载 DLL xxxxxxxx找不到指定的模块. (异常来自HRESULT:0x8007007E ...
- css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')
一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer"> <div class=&quo ...
- Nginx模块之———— RTMP 模块的在线统计功能 stat 数据流数据的获取(不同节点则获取的方式不同)
一.目前只有一个Live节点存在 单节点获取方式如下: public function getStreamByIp($outerIP, $streamName) { //查询录像模块的IP地址外网,根 ...
- 修改CMD字符编码
1.参考网址: 1.1.http://blog.useasp.net/archive/2012/04/24/how_to_use_UTF8_encoding_in_Windows_CMD.aspx 1 ...
- AF引起的camera偶现卡顿问题
相关log如下: 01-01 08:04:26.299 867 3220 E Camera2Client: syncWithDevice: Camera 0: Timed out waiting sy ...