.NET软件工程师笔试题汇总
- 格式:doc
- 大小:195.50 KB
- 文档页数:42
招聘.NET开发工程师笔试题与参考答案(某大型集团公司)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是.NET框架的核心组件?A、CLR(公共语言运行时)B、C、D、COM(组件对象模型)2、在C中,以下哪个方法用于判断一个字符串是否为null或空?A、String.IsNullOrEmpty(string str)B、String.IsNullOrWhiteSpace(string str)C、String.IsNullOrEmpty(string str, bool ignoreCase)D、String.IsNullOrWhiteSpace(string str, bool ignoreCase)3、在.NET框架中,以下哪个类用于处理文件和网络I/O操作?A. StreamB. FileStreamC. FileInfoD. Directory4、在 MVC中,以下哪个是用于请求参数绑定的属性?A. ActionResultB. ModelBindAttributeC. ModelStateD. ViewBag5、在.NET开发中,以下哪个类用于创建和管理线程?A. ThreadPoolB. ThreadC. TaskD. Monitor6、在C中,以下哪个关键字用于定义接口?A. InterfaceB. AbstractC. VirtualD. Override7、以下哪个特性是.NET Framework中用于处理多线程的?A. Exception HandlingB. Asynchronous ProgrammingC. ReflectionD. Serialization8、在C中,以下哪个类是用于处理XML文档的?A. XmlDocumentB. XmlTextReaderC. XmlWriterD. XmlSerializer9、在.NET框架中,以下哪个类不是用于数据访问的对象?A. DataTableB. DataSetC. DataReaderD. StreamWriter 10、以下哪个属性用于在应用程序中配置默认的页面编码?A. Page.UICultureB. Page.CharsetC. WebConfigurationManager.AppSettingsD. HttpResponse.ContentEncoding二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术或框架是.NET开发中常用的?()A、CB、C、Entity FrameworkD、WCFE、LINQ2、以下哪些特性是.NET Core相对于.NET Framework的改进?()A、跨平台支持B、异步编程支持C、动态内存管理D、更好的性能E、模块化设计3、以下哪些技术是.NET框架中用于实现数据访问的?A. B. Entity FrameworkC. WCFD. 4、以下哪些是.NET框架中用于实现分布式计算的技术?A. .NET RemotingB. AJAXC. Windows Communication Foundation (WCF)D. Windows Workflow Foundation (WF)5、以下哪些技术或框架是.NET开发工程师在项目开发中常用的?()A. CoreB. Entity Framework CoreC. WPF (Windows Presentation Foundation)D. AngularE. Unity6、以下关于.NET Core的特点描述,正确的是哪些?()A. 跨平台B. 开源C. 高性能D. 兼容.NET FrameworkE. 需要安装Visual Studio7、关于.NET Framework中的内存管理机制,以下说法正确的是:A、.NET Framework中的内存管理是通过垃圾回收机制自动进行的。
net笔试题目答案net笔试题目答案一、.net基础1、a=10,b=15,请在不使用第三方变量的状况下,把a、b的值互换答:小学算法,加法交换律和加法结合律int a=a+b; int b=a-b;int a=a-b;2、session宠爱丢值且占内存,Cookis担忧全,请问用什么方法代替这两种原始的方法答:redis 或者memcache。
当然,微软也提供了解决方案。
iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
3、如何处理几十万条并发数据?答:用存储过程或事务。
取得最大标识的时候同时更新..留意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.4、62-63=1 等式不成立,请移动一个数字(不行以移动减号和等于号),使得等式成立,如何移动?答案:62移动成2的6次方5、和有什么区分?答:表示绑定的数据源,是服务器端代码块6、页面生命周期简洁描述每个页面的.生命周期为用户的每一次访问,也就是说每一次客户端与服务器之间的一个往返过程.全局变量的生命周期在此之间.1. Page_Init();2. Load ViewState and Postback data;3. Page_Load();4. Handle control events;5. Page_PreRender();6. Page_Render();7. Unload event;8. Dispose method called;7、写出程序的输出结果public abstract class A{public A(){Console.WriteLine(A);}public virtual void Fun(){Console.WriteLine("A.Fun()');}}public class B: A{public B(){Console.WriteLine(B);}public new void Fun(){Console.WriteLine("B.Fun()'); }public static void Main() {A a = new B();a.Fun();}}答案:ABA.Fun()8、写出程序的输出结果:public class A{public virtual void Fun1(int i) {Console.WriteLine(i);}public void Fun2(A a){a.Fun1(1);Fun1(5);}}public class B : A{public override void Fun1(int i) {base.Fun1 (i + 1);}public static void Main(){B b = new B();A a = new A();a.Fun2(b);b.Fun2(a);}}答案:25169、在下面的例子里using System;class A{public A(){PrintFields();}public virtual void PrintFields(){} }class B:A{int x=1;int y;public B(){y=-1;}public override void PrintFields(){Console.WriteLine(x={0},y={1},x,y);}当使用new B()创建B的实例时,产生什么输出?答:X=1,Y=0;x= 1 y = -110、如何提高.NET的性能1.使用异步方式调用Web服务和远程对象只要有可能就要避开在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。
2024年招聘.NET开发工程师笔试题与参考答案(某世界500强集团)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是.NET Framework的核心组成部分?A、B、C、WinFormsD、C2、在C中,以下哪个关键字用于声明一个只读属性?A、constB、readonlyC、const readonlyD、static3、以下哪个是.NET框架中用于处理XML数据的命名空间?A. System.WebB. System.XmlC. System.Windows.FormsD. System.Data4、在C中,以下哪个属性用于表示一个对象是否为null?A. IsValueNullB. IsNullC. IsDefaultD. IsNullOrDefault5、以下哪个是.NET平台的核心组件?A. B. C. Windows FormsD. 所有以上都是6、在C中,以下哪个关键字用于声明一个接口?A. InterfaceB. ClassC. StructD. Enum7、在.NET框架中,以下哪个类是用于处理XML数据的?A. System.Data.DataSetB. System.Xml.XmlDocumentC. System.IO.StreamReaderD. System.Windows.Forms.Form8、在应用程序中,以下哪个组件负责处理客户端请求并将其转换为服务器端的响应?A. Global.asaxB. HttpApplicationC. HttpContextD. Page9、在.NET框架中,以下哪个类用于处理线程同步?A. ThreadPoolB. MonitorC. TaskD. List 10、在C中,以下哪个方法可以用来检测一个对象是否为特定类型的实例?A. isB. asC. typeofD. ==二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术栈是.NET开发工程师常用的?()A、 CoreB、Entity Framework CoreC、WPFD、Windows FormsE、React Native2、以下关于.NET Core的说法正确的是?()A、.NET Core是.NET Framework的升级版,两者可以无缝兼容。
.Net软件工程师招聘笔试题一、选择题(30分)1、()是面向对象程序设计语言中的一种机制,此种机制实现了方法的定义与具体的对象无关,而对方法的调用则可关联于具体的对象。
A.继承B.封装C.多态D.动态绑定2.下面哪个修饰符修饰的方法只能被本类中的其他方法使用()A.protected B.static C.private D.public3、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
A.3 B.3. 5 C.4 D.54、在MVC(模型/视图/控制器)模式中,视图部分描述的是()。
A.将应用问题域中包含的抽象领域知识呈现给用户的方式B.应用问题域中所包含的抽象类C.用户界面对用户输入的响应方式D.应用问题域中包含的抽象领域知识5、以下关于触发器的说法不正确的是()A.触发器的定义包括触发器名称、触发器所依附的对象、何时执行以及如何执行B.触发器主要是用于作完整保护和体现数据库的主动功能C.可激发触发器的操作包括INSERT、DELETE、UPDA TED.触发器仅能在事件INSERT、DELETE和UPDA TE之前触发,而不能在其后被触发。
6、如果一个程序段中有多个catch,则程序会按如下哪种情况执行?()A.找到合适的例外类型后继续执行后面的catchB.找到每个符合条件的catch都执行一次C.找到合适的例外类型后就不再执行后面的catchD.对每个catch都执行一次7.给出下面代码:()public class Person{static int[] arr = new int[10];public static void main(String[] a){Console.Write (arr[1]);}}那个语句是正确的?A.编译时将产生错误;B.编译时正确,运行时将产生错误;C.输出零;D.输出空。
8.给出一段程序,试判断哪个是正确的结果()public class myprogram{public static void main (String[] args){try{Console.Write (“Hello world ”); }finally{Console.Write (“Finally executing”);}}}A.无法编译,因为没有指定异常B.无法编译,因为没有catch子句C.Hello worldD.Hello world Finally executing9.指出下列程序运行的结果()public class Example{String str=new String("good");char[] ch={'a','b','c'};public static void Main(String[] args){Example ex=new Example ();ex.change(ex.str,ex.ch);Console.Write (ex.str+" and ");Console.Write (ex.ch);}public void change(String str,char[] ch){str="test ok";ch[0]= 'g';}}A.good and abcB.good and gbcC.test ok and abcD.test ok and gbc10、给出下面代码:()1) public class Parent2) {3) private String name;4) public Parent() { }5) }6)7) public class Child : Parent8) {9) private String department;10) public Child() { }11) public String getValue() { return name; }12) public static void Main(String[] arg)13) {14) Parent p = new Parent();15) }16) }那些行将引起错误?A.第4行B.第9行C.第11行D.第14行二、简答题(30分)1、C#语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?(10分)2、请画出设计模式中单例模式、观察者模式的类图,并且说明这两种模式的使用场景(10分)3、请列出至少三种.NET中字符串连接的方式。
2024年招聘.NET开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个技术不是.NET平台的一部分?A、B、CC、JavaD、2、在.NET中,以下哪个类用于处理文件输入输出?A、FileStreamB、StreamReaderC、StreamWriterD、File3、以下哪个不是.NET平台的核心框架之一?A. .NET FrameworkB. .NET CoreC. .NET 5D. Java Platform4、在C中,以下哪个属性是用于指定一个字符串变量的值是否可以改变?A. readonlyB. constC. sealedD. volatile5、在.NET框架中,以下哪个类是用来处理文件输入/输出的?A. FileInfoB. FileStreamC. DirectoryInfoD. StreamWriter6、在C中,以下哪个关键字用于声明一个异步方法?A. asyncB. awaitC. async/awaitD. task7、以下哪种编程语言是.NET平台的宿主语言?A. JavaB. CC. PythonD. Ruby8、在C中,以下哪个属性可以用来检查一个字符串是否为空或者仅包含空白字符?A. IsEmptyB. IsNullC. IsNullOrWhiteSpaceD. IsBlank9、在.NET框架中,以下哪个组件负责处理和响应应用程序的UI事件?A. B. C. Windows FormsD. WPF 10、在C中,以下哪种数据类型表示32位的带符号整数?A. byteB. shortC. intD. long二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术或框架是.NET开发工程师在开发过程中可能用到的?()A、 CoreB、Entity Framework CoreC、WPFD、DockerE、Vue.js2、以下关于.NET Core的特点,哪些是正确的?()A、跨平台B、高性能C、支持多种编程语言D、完全开源E、只适用于Web应用程序开发3、以下哪些技术或框架是.NET开发工程师在项目中可能会使用到的?(多选)A. CoreB. Entity Framework CoreC. Windows Communication Foundation (WCF)D. MVC (Model-View-Controller)E. jQuery4、以下关于 .NET 核心概念的描述,哪些是正确的?(多选)A. .NET Core 是一个开源、跨平台的框架。
试卷姓名:日期:1.填空:(1)面向对象的语言具有________性、_________性、________性。
(2)能用foreach遍历访问的对象需要实现________________接口或声明________________方法的类型。
(3)列举中的五个主要对象_______________、_____________、_______________、_______________、_________________。
(3)并简述中的五个主要对象各自的功能,列举各功能之间的工作关系:1:2:3:4:5:关系:2.选择题:(1)下面那一个不能作为C#中类修饰符?()A)newB)public、privateC)protected、internalD)overrideE)abstract、sealed(2).NET框架中,File对象的OpenTeGt方法,将返回一个:()A)StreamReader对象B)StreamWriter对象C)Stream对象D)File对象(3)下面那一个不是C#中方法的参数的类型()A)值类型B)引用型C)输出型D)数组型E)代理型(4)接口可以包含一个和多个成员,下面哪个选项不能包含在接口中A)方法、属性B)索引指示器C)事件D)常量、变量(5)接口不能通过()来实现A)类B)结构C)方法(6)net依赖以下哪项技术实现跨语言互用性?()A.clrB.ctsC.clsD.ctt(7)开发C#程序的集成开发环境是_________。
A、B、IDEC、FRAMD、CommonLanguageRuntime(8)以下叙述正确的是:(多选)A.接口中可以有虚方法。
B.一个类可以实现多个接口。
C.接口不能被实例化。
D.接口中可以包含已实现的方法。
(9)从数据库读取记录,你可能用到的方法有:(多选)A.EGecuteNonQueryB.EGecuteScalarC.FillD.EGecuteReader(10)从层次结构来看,.NETFramework包含以下三个主要部分_____。
1. 简述 private、 protected、 public、 internal 修饰符的访问权限。
答 . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 大众成员,完全公开,没有访问限制。
internal: 在同一程序集内可以访问。
2 .列举 页面之间传递值的几种方式。
答get请求、post请求、Session、Application、Cookie、ViewState3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } }4.C#中的委托是什么?事件是不是一种委托?答: 委托是引用数据类型,可以把一个方法作为参数传递给委托。
委托可以理解为指向一个函数的引用。
事件是一种特殊的委托5.override与重载的区别?答重载是方法的名称相同。
参数或参数类型不同(同名同类不同参)。
简单,可能被伪造 url参数(get请求)安全性差,数据长度有限数据库稳定,安全,但性能相对弱 ViewState 通过ViewState可以将当前页面的控件数据传递到另一个页面,因为ViewState存放在客户端,因此安全性比较长63.请指出GAC的含义?答:全局程序集缓存。
64.向服务器发送请求有几种方式?答:get,post。
1、给定一个字符串string str = "哈尔滨学习网定位于我的建设门户、我的工作社区,倾听用户的声音,关注用户的需求是天工生存与发展的根基,网上会员大都是通过口碑相传得知哈尔滨学习网,并成为哈尔滨学习网的忠实用户";请用程序找出这个字符串中出现频率最高字(要求把该方法写成一个函数,然后用main()函数调用该方法,开发语言不限,但不能直接调用系统的方法)2、下图给出了一张地图,地图中每个顶点代表一个城市,两个城市间的连线代表道路,连线上的数值代表道路长度,求从A 地到E地的最短路径。
要求写出算法思路就可以了,如果文字说明不清晰的话,最好用伪代码表达。
3、编写一个方法来获取location.href对应key的值(如:当前页地址为http://localhost/?id=123&name=test,输入"id"即获得"123",输入"name"获得"test")备注:用js代码4、如下图:当点击id为cAll的checkbox选中时,其他checkbox也选中; 当它取消选中时,其他checkbox也取消选中。
(用jQuery实现.)5、设有"学生Student(sID,sName)","课程Course(cID,cName)","选课StudentCourse(scID,sID,cID)" 这三个表。
一个学生可以选修0..n门课,一门课也可以被0..n个学生选修。
1):请用一条SQL语句找出选修了所有课程的学生姓名。
6、在"信息表Info(infoID,infoTitle)"中,infoID是自增列,但Info表中的数据进行过删除,即infoID不是连续的。
1):请用一条SQL语句找出按infoID升序排列,现在排在第100~120位置的那20条数据。
1.简述private、protected、public、internal 修饰符的访问权限。
答. private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
2 .列举 页面之间传递值的几种方式。
答. 1.使用QueryString, 如....?id=1; response. Redirect()....2.使用Session变量3.使用Server.Transfer3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。
答:public class MainClass{public static void Main(){Console.WriteLine(Foo(30));}public static int Foo(int i){if (i <= 0)return 0;else if(i > 0 && i <= 2)return 1;else return Foo(i -1) + Foo(i - 2);}}4.C#中的委托是什么?事件是不是一种委托?答:委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托5.override与重载的区别答:override 与重载的区别。
重载是方法的名称相同。
参数或参数类型不同,进行多次重载以适应不同的需要Override 是进行基类中函数的重写。
为了适应需要。
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?答:this.Server.Transfer7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?答:foreach (System.Windows.Forms.Control control in this.Controls){if (control is System.Windows.Forms.TextBox){System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ;}}8.请编程实现一个冒泡排序算法?答:int [] array = new int;int temp = 0 ;for (int i = 0 ; i < array.Length - 1 ; i++){for (int j = i + 1 ; j < array.Length ; j++){if (array[j] < array[i]){temp = array[i] ;array[i] = array[j] ;array[j] = temp ;}}}9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?答:不是。
1.面向对象的思想主要包括什么?答:任何事物都可以理解为对象,其主要特征:继承。
封装。
多态。
特点:代码好维护,安全,隐藏信息2.什么是中的用户控件答:扩展名为*.ascx,跟*.aspx在结构上相似,是指页面中加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用户控件中使用。
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?答:应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。
应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。
应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单元提供应用程序之间的隔离。
托管代码为使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
装箱和拆箱使值类型能够被视为对象。
对值类型装箱将把该值类型打包到Object 引用类型的一个实例中。
这使得值类型可以存储于垃圾回收堆中。
拆箱将从对象中提取值类型。
重载:每个类型成员都有一个唯一的签名。
方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。
当定义两种或多种具有相同名称的方法时,就称作重载。
CTS通用类型系统(common type system):一种确定公共语言运行库如何定义、使用和管理类型的规范。
CLR公共语言运行库:.NET Framework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。
CLS公共语言规范:要和其他对象完全交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。
为此定义了公共语言规范(CLS),它是许多应用程序所需的一套基本语言功能。
强类型:C# 是强类型语言;因此每个变量和对象都必须具有声明类型。
4.列举一下你所了解的XML技术及其应用答:保存配置,站与站之间的交流,WEB SERVICE。
以及与数据库的数据交互等地方都要用它.5.值类型和引用类型的区别?答:基于值类型的变量直接包含值。
将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
所有的值类型均隐式派生自System.ValueType。
与引用类型不同,从值类型不可能派生出新的类型。
但与引用类型相同的是,结构也可以实现接口。
与引用类型不同,值类型不可能包含null 值。
然而,可空类型功能允许将null 赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
值类型主要由两类组成:结构、枚举结构分为以下几类:Numeric(数值)类型、整型、浮点型、decimal、bool、用户定义的结构。
引用类型的变量又称为对象,可存储对实际数据的引用。
声明引用类型的关键字:class、interface、delegate、内置引用类型:object、strin中常用的对象有哪些?分别描述一下。
答:Connection 打开数据库连接Command 执行数据库命令DataAdapter 连接数据,执行数据库命令,填充DataSetDataSet 数据在内存中的缓存,数据结构DataReader 只读向前的读取数据库7.如何理解委托?答:相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.委托具有以下特点:委托类似于C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。
有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
8.C#中的接口和类有什么异同。
答:异:不能直接实例化接口。
接口不包含方法的实现。
接口、类和结构可从多个接口继承。
但是C# 只支持单继承:类只能从一个基类继承实现。
类定义可在不同的源文件之间进行拆分。
同:接口、类和结构可从多个接口继承。
接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
接口可以包含事件、索引器、方法和属性。
一个类可以实现多个接口。
9.UDP连接和TCP连接的异同。
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.的身份验证方式有哪些?分别是什么原理?答:Windows 身份验证提供程序:提供有关如何将Windows 身份验证与Microsoft Internet 信息服务(IIS) 身份验证结合使用来确保 应用程序安全的信息。
Forms 身份验证提供程序:提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。
使用Forms 身份验证的一种简便方法是使用 成员资格和 登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。
Passport 身份验证提供程序:提供有关由Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置11.进程和线程分别怎么理解?答:进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。
每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。
但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。
但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。
这就是进程和线程的重要区别。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.12.什么是code-Behind技术。
答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.13.解释一下UDDI、WSDL的意义及其作用。
答:UDDI:统一描述、发现和集成协议(UDDI, Universal Description, Discovery and Integration)是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准。
UDDI 提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现。
WSDL:WSDL描述Web服务的公共接口。
这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;14.什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。
使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。
SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。
SOAP 利用XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。
这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
SOAP 定义了一种方法以便将XML 消息从A 点传送到B 点。
为此,它提供了一种基于XML 且具有以下特性的消息处理框架:1) 可扩展,2) 可通过多种底层网络协议使用,3) 独立于编程模型。
15.如何理解.net中的垃圾回收机制。
答:.NET Framework 的垃圾回收器管理应用程序的内存分配和释放。
每次您使用new 运算符创建对象时,运行库都从托管堆为该对象分配内存。
只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。
但是,内存不是无限大的。
最终,垃圾回收器必须执行回收以释放一些内存。
垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。
当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存。
16.常用的调用webservice方法有哪些?答:SOAP和WSDL17. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。
)解1: select top 10 * from A where id not in (select top 30 id from A)解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)18.列举 页面之间传递值的几种方式。
答:1.使用QueryString, 如....?id=1; response.Redirect().... 2.使用Session变量 3.使用Server.Transfer 4.使用Application变量5.使用Cookie 6. 写出程序的输出结果19. 写出程序的输出结果class Class1{private string str = "Class1.str";private int i = 0;static void StringConvert(string str){str = "string being converted.";}static void StringConvert(Class1 c){c.str = "string being converted.";}static void Add(int i){i++;}static void AddWithRef(ref int i){i++;}static void Main(){int i1 = 10;int i2 = 20;string str = "str";Class1 c = new Class1();Add(i1);AddWithRef(ref i2);Add(c.i);StringConvert(str);StringConvert(c);Console.WriteLine(i1);Console.WriteLine(i2);Console.WriteLine(c.i);Console.WriteLine(str);Console.WriteLine(c.str);}}答案(考查值引用和对象引用):10 21 0 str string being converted.20.写出程序的输出结果public abstract class A{public A(){Console.WriteLine('A');}public virtual void Fun(){Console.WriteLine("A.Fun()");}}public class B: A{public B(){Console.WriteLine('B');}public new void Fun(){Console.WriteLine("B.Fun()");}public static void Main(){A a = new B();a.Fun();}}答案(考查在继承类中构造函数, 以及new 方法):A B A.Fun()21. 写出程序的输出结果:public class A{public virtual void Fun1(int i){Console.WriteLine(i);}public void Fun2(A a){a.Fun1(1);Fun1(5);}}public class B : A{public override void Fun1(int i){base.Fun1 (i + 1);}public static void Main(){B b = new B();A a = new A();a.Fun2(b);b.Fun2(a);}答案:2 5 1 622. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。