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点?四个数字分别 ...
随机推荐
- MVVM简介
如果你对MVVM的概念还是不了解,可以参看下面链接:http://baike.baidu.com/view/3507915.htm 我们以WPF+MVVM的本地桌面程序为背景,这样一来我们可以不去操心 ...
- 我的Android第四章
本章需掌握 1.连接真机的过程. 2.dx指令的作用 3.adb是什么? 4.adb有什么用(有什么好处)? 5.adb的一些常用命令 1.连接真机的过程. 需要:一部Android机.usb连接线, ...
- stm32 cubemx hal 工程中 微秒延迟 delay_us
参考的正点原子的代码 测试平台 stm32f429i-disco 配了一个gpio 时钟 gpio /* USER CODE BEGIN 0 */ typedef uint8_t u8; typede ...
- 28-React state提升、组件组合或继承
Lifting State Up state提升 对于在React应用程序中更改的任何数据,应该有一个单一的数据源.通常,都是将state添加到需要渲染的组件.如果其他组件也需要它,您可以将其提升到最 ...
- 【leetcode❤python】 165. Compare Version Numbers
#-*- coding: UTF-8 -*-class Solution(object): def compareVersion(self, version1, version2): ...
- Android Studio 2.0使用指南
一.下载界面.[无激活码 无序列码 无毒请放心使用][需将JAVA程序升级到1.8] 网址:http://www.android-studio.org/index.php/download/andro ...
- java编程者必收藏的十大学习网站-xiaolanglang123 -
3S博客 http://blog.3snews.net/space.php?uid=13924628&do=blog&id=70282
- js巧用apply方法实现数组最值以及合并
尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:1.数组最大最小值 求数组中的最大最小值,js有相应的方法:Math.min() ...
- Ubuntu中配置Thunderbird登录qq邮箱
1.打开thunderbird 2.开启QQ邮箱pop功能 登录网页版QQ邮箱(email.qq.com) 设置---->>账户---->> 3.配置thunderbird 注 ...
- Linux C相关基础
系统求助 man 函数名 man 2 函数名 - 表示函数是系统调用函数 man 3 函数名 - 表示函数是C的库函数 eg:man fread man 2 w ...