常见.NET技术面试题
常见.NET技术面试题
C#
什么是委托?委托和事件是什么关系?
答:简单的说:委托是一种方法容器,里面可以装载若干个具有相同签名的方法引用地址,那么调用委托,就相当于同时调用了该容器内的所有方法。
委托可以将方法作为参数传递给方法.
?事件是一种特殊的委托
什么是反射?
?答:反射提供了封装程序集,模块和类型对象,可以用反射动态地创建类型的实例,将类型绑定到现有对象,或者从现有对象类型里获取类型,然后调用类型的方法或访问字段和属性。
C#中是否可以从多个类中继承?如何实现多重继承?
?答:不能,要想实现多继承,就用接口
什么是密封类?
?答:密封类是类的一种,用sealed修饰,不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。
using关键字有几种用途?
?答:两种
?(1)应用命名空间;
?(2)定义一个范围,在范围结束时处理对象
#warning和#error分别的用途是什么?
string和StringBuilder有什么区别?
?答:String 对象是不可改变的。StringBuilder对象是动态对象
string 是常量,定义后不能改变,
stringbuilder定义后可以改变,且线程不安全
const和readonly的区别?
?答:const声明常量,raadonly是运行是的常量
new、virtual、abstract、override、sealed的区别?
?New :(1)new 一个对象(2)隐藏基类中的方法(3)在泛型时,new一个泛型类
?Virtual:virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。virtual修饰符不能与static、abstract, private或override修饰符一起使用。
Abstract:abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。
?Override:重写:重写基类中的方法,不能重写非虚方法或静态方法。重写的基方法必须是vi rtual、abstract或override的。override声明不能更改virtual方法的可访问性。override方法和virtual方法必须具有相同的访问级别修饰符。
?Sealed:密封类不能作为基类,密封类不能同时为抽象类
abstract class和interface有什么区别?
?答:区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;
?而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。
?区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;
而对于接口来说,其中所定义的方法都不能给出实现部分。
?区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;
?而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属
性实现。
区别四,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;
?而对于接口来说,则需要修改继承类,提供新定义的方法。
?
公共变量与属性的区别?
答:(1)属性只能通过初始化类,创建对象后才能使用。变量则没有这方面要求,
(2)属性没有固定的地址,属性的赋值只是使指针;变量赋值只是变量的地址储存所指的地址值
结构与类的区别?
答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能申明有默认的构造函数,为结构的副本是又编译器创建和销毁的,所以不需要默认的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是应用类型,改变其变量的值会改变其原值。申明结构用Struck关键字,申明类用class关键字,向方法传递结构是时是通过值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New关键字。类可以实现接口。
https://www.360docs.net/doc/e49880193.html,
https://www.360docs.net/doc/e49880193.html, Web应用程序和https://www.360docs.net/doc/e49880193.html,网站的区别是什么?
答:都是设计网页的。
都可以添加https://www.360docs.net/doc/e49880193.html,文件夹
web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs;
Web网站Default.aspx显示有一个原有文件Default.aspx.cs。
web应用程序有重新生成和发布两项;Web网站只有一个发布网站。
web应用程序和一般的winform没有什么区别都有引用的是命名空间等;Web网站在引用后出现一个bin文件夹那里存放dll和pdb文件。
web应用程序可以作为类库被引用;Web网站则不可以作为类库被引用。
web应用程序可以添加https://www.360docs.net/doc/e49880193.html,文件夹中不包括bin、App_Code;Web网站可以添加https://www.360docs.net/doc/e49880193.html, 文件夹包括bin、App_Code。
web应用程序还可添加组件和类;Web网站则没有。
源文件虽然都是Default.aspx.cs但是web应用程序有命名空间,多了一项System.Collections 空间引用。
Web应用程序在修改了页面底层的代码之后需要重新进行编译
网站不需要重新编译
网站可以添加APS文件夹,Web应用程序不可以
Web应用程序的项目会生成Dll文件
网站在发布的时候,会自动生成Dll文件,但是每次的Dll文件名都不一样
Web应用程序会有解决方案和项目文件
WebSite编程模型的优点:
动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势)
同上,可以使错误的部分和使用的部分不相干扰(可以要求只有编译通过才能签入)可以每个页面生成一个程序集(不会采用这种方式)
可以把一个目录当做一个Web应用来处理,直接复制文件就可以发布,不需要项目文件(无所谓,只适合小站点)
可以把页面也编译到程序集中(应该用不到,而且WebApplication也可以通过WebDeployment插件来实现)
页面事件的执行顺序?
答:1.对象初始化,2.加载视图状态数据,3.LoadPostData处理回传数据,4.对象加载 5.激发RaisePostDataChanged事件,6.处理客户端回传事件,7.对象预呈现,8.保存视图状态,9.呈现HTML,10.释放
页面之间传值有哪几种方法?
答:QueryString,session,cookies,application,server.Transfer,
respose.redictor.
https://www.360docs.net/doc/e49880193.html,服务器空件和HTML控件的区别?
答:1、https://www.360docs.net/doc/e49880193.html,服务器控件提供了统一的编程接口
2、https://www.360docs.net/doc/e49880193.html,服务器控件具有浏览器的无关性,也就是无论何种浏览器都能支持
3、https://www.360docs.net/doc/e49880193.html,服务器控件可以保存状态到ViewState里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存
4、事件处理模型不同,HTML控件的事件处理都是在客户端的页面上,而https://www.360docs.net/doc/e49880193.html, 服务器控件则是在服务器上
综上所述HTML控件的事件是由客户端页面来触发的,而https://www.360docs.net/doc/e49880193.html,服务器控件则是由页面把WEB表单发回到服务器端,由服务器来处理
Server.Transfer和Response.Redirect的区别?
答:Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。
如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知
XHTML,DHTML与HTML的区别?
XHTML(The Extensible HyperText Markup Language(可扩展标识语言))实际上是HTML的升级版本。这一版本推出的目的是为了让人们更加容易接受XML,因为XML是为了web发展的方向,本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。
DHTML:确切地说,DHTML只是一种制作网页的概念,实际上没有一个组织或机构推出过所谓的DHTML 标准或技术规范之类的。DHTML不是一种技术、标准或规范,DHTML只是一种将目前已有的网页技术、语言标准整和运用,制作出能在下载后仍然能实时变换页面元素效果的网页的设计概念。
Winform
什么是MDI窗体?
答:父窗体
窗体间如何传递数据?
答(1)使用接口传值(2)利用委托(3)使用构造函数
进程与多线程有何区别?
答:进程就是一个单独程序打开了单独的一段地址空间进行单独的工作
而线程是一个程序用N段地址空间进行进行同一种操作
微软官方对进程和线程的定义:
进程:用最简洁的话来说,进程就是一个正在执行的程序,一个或多个线程在进程中运行,线程是操作系统分配CPU运算时间的最小单位。每一个进程都提供了运行一个程序所必需的资源,一个进程具有4GB的虚拟地址空间
什么是模态窗口?什么是非模态窗口?
答:对话框一般分为两种类型:模态类型(modal)与非模态类型(modeless)。所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换。
https://www.360docs.net/doc/e49880193.html,
https://www.360docs.net/doc/e49880193.html,对象模型包括哪几部分?
答: 1.Connection 对象
https://www.360docs.net/doc/e49880193.html,mand对象
3.DataReader对象
4.DataAdapter对象
5.DateSet对象
建立与数据库的访问需要几个步骤?
答:一般要通过以下四个步骤:
1、创建一个到数据库的链路,即ADO.Connection;
2、查询一个数据集合,即执行SQL,产生一个Recordset;
3、对数据集合进行需要的操作;
4、关闭数据链路。
DataAdapter和DataReader有何不同?
答:DataReader对象一般用于以下情况:只想读取数据时;从存储器中获得的数据只用于显示,而不做其他处理。
DataSet对象(与DataAdapter对象一起使用)在以下情况:可能在数据源中修改(编辑或添加新的)数据时;想在读取数据后显示数据前对数据进行修改时。例如,你可能想将数据读入一些表中,或在多个表中的数据间创建关系。你也可能想约列,或者利用多个连接创建多个数据表。
事务有哪几个属性?
事务具有ACID属性
即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性
原子性
就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全回滚,全部不保留
一致性
事务完成或者撤销后,都应该处于一致的状态
隔离性
多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时,不合理的存取和不完整的读取数据
永久性
事务提交以后,所做的工作就被永久的保存下来
在.NET中有几种事务处理方式?
Oracle和SQL Server在开发上有哪些不同?
答:1操作平台(Oracle可以在多平台上运行,而sql在Windows操作系统上操作)
2.可操作性,易用性(Oracale在8i之前都是dos而sql有界面操作)
3数据库管理(Oracle针对表空间管理,sql针对数据库管理)
4.Oracle没有提供中文帮助文档,而sql提供
5.Oracle的价格要远超于sql(sql是Oracle的十分之一不到)
6.Oracle在Windows操作平台上只有2G空间,而sql就没有限制.但是sql不能运行在其他平台上
XML
XML和HTML有什么区别?
XML操作相关的类有哪些?Javascript操作XML的方法?https://www.360docs.net/doc/e49880193.html,与XML如何转换?
什么是RSS?如何实现RSS?
Web Service
什么是Web Service?
Web Service有何优势?
如何在https://www.360docs.net/doc/e49880193.html,中创建Web Service?保证Web Service的安全有哪些措施?Ajax
什么是Ajax?
Ajax技术的核心是什么?
Ajax的工作原理是什么?
如何创建https://www.360docs.net/doc/e49880193.html, Ajax应用程序及常用控件?
其他第三方Ajax组建有哪些?
系统与文件操作
获取系统信息有哪些类?
获取系统服务信息需要哪个类?
文件操作有哪几个类?
注册表操作用到哪些类?
Network
.NET网络编程的常用类和方法有哪些?
什么是Socket?
Socket的基本通信过程是怎样的?
实现异步Socket通信的关键步骤有哪些?TcpListener/TcpClient基本通信过程是怎样的?Windows Service
Windows服务应用程序和普通的应用程序有什么不同?
Windows服务中的Timer控件和普通Timer控件是否相同?
如何安装和卸载Windows服务程序?
如何调试Windows服务程序?
WPF/WCF/LINQ
.NET 2.0、.NET 3.0和.NET 3.5的区别?
WPF技术是做什么用的?
SOA是什么?
WCF和SOA是什么关系?
WCF的优势是什么?
LINQ是什么技术?
LINQ技术有什么好处?
OO
如何理解面向对象的思想?
面向对象的设计与开发会有哪些好处?
面向对象有哪些特点?
实现多态有哪些方式?
在什么情况下应用条件外置和反射技术?如何进行面向对象分析?
面向对象设计有哪些原则?
三层架构项目开发
什么是三层架构?
常用三层架构设计是什么?
为什么要用三层结构?
抽象工厂模式有什么作用?
抽象工厂模式的思想方式是什么?
条件外置及反射技术的实现是怎样的?大型网站的性能优化与安全
如何提高代码的效率和性能?
如何提高页面的显示速度?
从哪些方面考虑降低服务器负载?
实现系统缓存有哪些方法?
数据库有哪些常见的优化手段?
什么是SQL注入式攻击?
在应对大型网站负载架构方面有哪些优化策略?
系统设计的原则和技巧
在做系统设计时需要考虑哪些方面?
开发软件或系统时功能越多越好吗?
做项目时,需求总是变化的,你怎么看待这个问题?
如何确定软件模块的可变与不变?
每个软件在设计时是否都需要考虑软件的可扩展性?
对需求或功能比较多的软件或系统应该采取什么样的策略进行开发?
什么是软件重构,为什么要重构?
Web架构设计的周期逻辑是什么?
计算机基础知识面试题库
对于项目 1. 明确你的项目到底是做什么的,有哪些功能 2. 明确你的项目的整体架构,在面试的时候能够清楚地画给面试官看并且清楚地指出从哪里调用到哪里、使用什么方式调用 3. 明确你的模块在整个项目中所处的位置及作用 4. 明确你的模块用到了哪些技术,更好一些的可以再了解一下整个项目用到了哪些技术 操作系统 1.操作系统的四大特性: a)并发性 b)共享性 c)虚拟性 d)不确定性 2.请叙述一下并发和并行两个概念的区别? a)并行是指两个或多个事件在同一时刻发生,并发是指两个或多个事件在同一时间 间隔内发生。 3.什么是进程?什么是线程? a)“进程是一个可并发执行的,具有独立功能的程序关于某个数据集合的一次执行过 程,也是操作系统进行资源分配和调度的独立单位”。进程是资源分配的基本单 位。 b)线程也称为轻量级进程(LWP),是程序执行流量的最小单位,它是进程的一个实 体,是系统独立调度和分派处理机的基本单位。线程是操作系统调度的最小单 位。 4.进程和线程的区别?从调度、并发性、拥有资源和系统开销四个方面来比较: a)调度。在引入线程的操作系统中,把线程作为调度和分派CPU的基本单位,把进 程作为资源分配的基本单位,显著提高了并发程度。由于系统调度的基本单位是 线程,所以每个进程至少创建一个线程,否则无法被调度。 b)并发性。多线程可以提高服务的质量,在一个线程阻塞时,还有其他线程提供服 务。
c)拥有资源。进程是拥有资源的独立单位,线程自己不拥有系统资源,而是共享进 程的资源(包括代码段、数据段即系统资源等)。 d)系统开销。进程切换的开销远远大于线程切换的开销,进程的切换需要保存很多 现场,但线程只需要保存和设置少量的寄存器内容,不涉及存储器管理方面的操 作。 5.进程的特征: a)动态性:进程是动态产生和动态消亡的,有其生存周期。 b)并发性:一个进程可以与其他进程一起向前推进。 c)独立性:一个进程是一个相对完整的调度单位。 d)异步性:每个进程都已相对独立、不可预知的速度向前推进。 e)结构性:为了控制和管理进程,系统为每个进程设立一个进程控制块(PCB)。 6.进程有几种状态? a)就绪状态 b)运行状态:单CPU环境下,系统处于运行状态的进程最多只有一个。 c)阻塞状态 7.进程的组成: a)程序: b)数据集合:进程独有 c)进程控制块(PCB):它和进程一一对应,PCB是操作系统能感知进程存在的唯一标 识,操作系统正是通过管理PCB来管理进程的。系统创建进程时,为每个进程分 配PCB,进程执行完成后,系统释放PCB,进程也随之消亡。 8.进程的切换: a)进程上下文包含用户级上下文、系统级上下文、寄存器上下文 b)进程上下文切换是核心态的切换,不发生在用户态。 c)用户态到核心态之间的转变是CPU模式的改变。模式切换不同于进程切换,并不 引起进程状态的改变。 9.为什么会提出线程这个概念?进程的缺点是什么? a)进程切换开销大 b)进程通信代价大 c)进程之间并发性粒度粗,并发度不高
JAVA、net 后端技术岗笔试题
net开发工程师笔试题目 1.一列数的规则如下:1、1、2、3、5、8、13、21、34……求第30位数是多少,用递归算法实现。 2.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 3.在C#中,string str = null 与string str = "" 请使用文字说明其中的区别。 4.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。 public void test(int i) { lock(this) { if (i>10) { i--; test(i); } } }
5.简要谈一下您对微软。NET 构架下remoting和webservice两项技术的理解以及实际中的应用。 6.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路 7.给定以下XML文件,完成算法流程图。
计算机基础知识笔试题
计算机基础知识笔试题 1、第一台电子计算机使用的逻辑部件是()。 A.集成电路 B.大规模集成电路 C.晶体管 D.电子管 2、微型计算机系统由()组成。 A. 主机和显示器 B. 运算器和控制器 C. 硬件系统和软件系统 D. 输入系统和输出系统 3、可以作为CPU主要性能指标的是() A.分辨率B.网络速度C.外型尺寸D.时钟频率 4、中央处理器(CPU)的组成部分是() A、内存储器、运算器、控制器 B、硬盘、内存储器 C、内存储器、外存储器 D、控制器、运算器 5、所说的“Pentium III,128MB,20G”,其中的“Pentium III”是指计算机的() A 、重量B、内存容量C、CPU型号D、硬盘大小 6、“32位”这个词,这里“位”的含义是()。 A.字 B.字长 C.字节 D.二进制位 7、计算机在工作时突然断电,会使存储在()中的数据丢失。 A.RAM B.ROM C.硬盘D.软盘 8、U盘是IGB的,比你的容量大一倍,那么你的U盘是()的。 A 500M B B IGB C 512MB D 2GB 9、存储器读写速度的排序其中正确的说法是()。 A.RAM>光盘>硬盘>软盘 B. 光盘>RAM >硬盘>软盘 C. 光盘>硬盘>RAM>软盘 D. RAM>硬盘>光盘>软盘 10、购买的微机安装软件时,最不可缺少的是()。 A浏览器软件B数据恢复软件C操作系统D杀毒软件 11、在计算机的众多特点中,其最主要的特点是()。 A.计算速度快B.计算精度高 C.应用广泛 D.存储程序与自动控制 12、计算机唯一能够直接识别和处理的语言是()。 A.机器语言B.高级语言C.最高级语言D.汇编语言
DoNet面试题(选择题)原题
1.下面有关用户控件与aspx页面区别说法错误的是(B) A.用户控件不能再包含