.Net常见笔试题我没有领悟

1.简述private、protected、public、internal修饰符的访问权限。

答:private:私有成员,在类的内部才可以访问;

protected:保护成员,该类内部和继承类中可以访问;

public:公共成员,完全公开,没有访问限制;

internal:当前程序集内可以访问。

2、面向对象的三个特性?

继承性:就是让一个类型的对象拥有另一个类型的对象的属性的方法。继承后,子类拥有父类的属性和方法。

封装性:就是将数据和代码捆绑在一起,防止外界干扰。

多态性:就是一个事物拥有不同形式的能力。

3.C#中的委托是什么?事件是不是一种委托?

答:委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向函数的指针。事件不是委托,因为委托是类型,事件是对象。如果非要说事件和委托的关系,就是事件的内部是用委托实现的。

4.override与重载(overload)的区别

答:重载是方法的名称相同,参数或者参数类型不同,进行多次重载以适应不同的需要。重载是面向过程的;override是进行基类函数的重写,override是面向对象的。

5..net中类(class)与结构(struct)的异同?

答:class可以被实例化,属于引用类型,是分配在内存的堆上的,class可以实现接口和单继承其他类,还可以作为基类型;struct属于值类型,是分配在内存的栈上的,不能作为基类型,但是可以实现接口。

6.CTS、CLS、CLR分别作何解释?

答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

7.什么是装箱和拆箱?

答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

8.什么是受管制(托管)的代码?

答:托管代码是运行.NET公共语言运行时CLR的代码;unsafe:非托管代码,不经过CLR运行。程序员自行分配和释放内存空间。

9.在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。

答:stringstr=null是不给他分配内存空间,而stringstr=""给它分配长度为空字符串的内存空间。

10、StringBuilder和String的区别?

String在进行运算时(如赋值、拼接等)会产生一个新的实例,而StringBuilder则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用StringBuilder,不要使用String。

11、GC是什么为什么要有GC

C/C++中由程序员进行对象的回收像学校食堂中由学生收盘子,.Net中由GC进行垃圾回收像餐馆中店员去回收。

GC是垃圾收集器(GarbageCollection)。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的释放,对于非托管资源则不能使用GC进行回收,必须由程序员手工回收,一个例子就是FileStream或者SqlConnection需要程序员调用Dispose进行资源的回收。

12、值类型和引用类型的区别?

1.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。

2.值类型不可能派生出新的类型:所有的值类型均隐式派生自System.ValueType。但与引用类型相同的是,结构也可以实现接口。

3.值类型不可能包含null值:然而,可空类型功能允许将null赋给值类型6。

4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

要请求垃圾收集,可以调用下面的方法:GC.Collect()一般不需要手动调用GC.Collect()。当一个对象没有任何变量指向(不再能使用)的时候就可以被回收了。

13、abstractclass和interface有什么区别?

相同点:

都不能被直接实例化,都可以通过继承实现其抽象方法。

不同点:

接口支持多继承;抽象类不能实现多继承。

接口只能定义行为;抽象类既可以定义行为,还可能提供实现。

接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法;

抽象类可以定义字段、属性、包含有实现的方法。

接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类

14、能用foreach遍历访问的对象的要求?

15、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?

using引入名称空间或者使用非托管资源,使用完对象后自动执行实现了IDisposable接口的类的Dispose方法。

new新建实例或者隐藏父类方法。

16、什么是反射?

程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例。

17、进程和线程的区别?

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源

18、堆和栈的区别?

栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。

堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

19、ADO.net中常用的对象有哪些?分别描述一下

Connection数据库连接对象Command数据库命令DataReader数据读取器DataSet数据集

20、Application、Cookie和Session有什么不同?

Application是用来存取整个网站全局的信息,而Session是用来存取与具体某个访问者关联的信息。Cookie是保存在客户端的,机密信息不能保存在Cookie中,只能放小数据;Session是保存在服务器端的,比较安全,可以放大数据。

21、列举ASP.NET页面之间传递值的几种方式。

1.使用QueryString,如....id=1;response.Redirect()....

2.使用Session变量

3.使用Server.Transfer

4.Cookie传值

22、谈谈你对三层架构的理解

通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

区分层次的目的即为了“高内聚,低耦合”的思想。

表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。

业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系。

三层结构是N层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。

优点:分工明确,条理清晰,易于调试,而且具有可扩展性。

缺点:增加成本。

23、编写一个单例(Singleton)类?

把构造函数设置为private,设置一个public、static的对象实例

publicFileManager

{

privateFileManager(){}

publicreadonlystaticFileManagerInstance=newFileManager();

}

24、谈谈你对MVC和三层架构的理解?

三层架构即表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。表现层通俗讲就是展现给用户的界面,业务逻辑层即针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层:该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

25、列举ASP.NetMVC中,从Action传值到View(不是从客户端传值到Action),有几种方式?

1、Viewdata2、Viewbag3、Model

26、在MVC中如何保持Sessions?

可使用tempdata、viewdata、viewbag三种方式。

其中tempdata:在不同的控制器或动作间转换时保持数据。另外,进行页面转向时,tempdata可以保持数据,它是一个内部的Session变量。

Viewdata:可以在控制器和视图间保持数据。

Viewbag:它是视图数据的动态包装,使用viewbag不需要类型转换,它使用的是内部动态关键词。

27、MVC中如何做输入验证?

在M层使用数据模型的属性标签形如[Required],在C层使用ModelState.IsValid属性检查数据是否正确,也可在C层使用JavaScript进行数据验证。

28、MVC有多少种不同类型的结果类型,请详细描述?

有12种,最主要的是ActionResult类,它是一个基础类,它有11个子类型。

ViewResult-给响应流渲染指定的视图

PartialViewResult-给响应流渲染指定的局部视图

EmptyResult-返回空的响应结果。

RedirectResult-执行一个HTTP转向到指定的URL。

RedirectToRouteResult-执行一个HTTP转向到一个URL,这个URL由基于路由数据的路由引擎来决定

JsonResult-序列化一个ViewData对像到JSON格式。

JavaScriptResult-返回一段javascript代码,它可以在客户端执行。

ContentResult-写内容到响应流,不需要视图支持。

FileContentResult-返回一个文件到客户端。

FileStreamResult-返回一个文件到客户端,它提供的是流。

FilePathResult-返回一个文件到客户端

29、JavaScript中的“==“和”===”区别?

==:判断两个变量是否相同,仅限于值,如果值相同而类型不同,那么JavaScript引擎会在内部做类型转换;

===:判断两个变量是否相同,无论是值还是类型,如果类型不同而值相同,也会返回false,而引擎不会在内部进行转换。

30、JavaScript中的“undefined、null”区别?

通俗地讲,undefined出现的原因是JavaScript引擎不知道这是个什么东西,而对于null,JavaScript引擎识别了它,但是没有被分配内存空间。

undefined的类型就是undefined,而null的类型是object。

31、简述javascript的作用域和闭包?

js变量的作用域是指:函数内定义的局部变量只在此函数内有效,而全局变量可以全局有效。

闭包的作用就在于能够改变局部变量的作用域,将值保存下来,但是如果使用不当会造成无法回收变量,引起性能问题,甚至崩溃。

32、不用中间变量交换两个变量?

inti=10;

intj=20;

Console.WriteLine("i={0},j={1}",i,j);

i=i+j;//i=30

j=i-j;//j=10;

i=i-j;//i=20;

33.请编程实现一个冒泡排序算法?

答:

publicstaticvoidBubbleSort(int[]array){if(array==null||array.Length==0)return;for(inti=0;iarray[j+1]){inttemp=array[j];array[j]=array[j+1];array[j+1]=temp;}}}}34.一列数的规则如下:1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。

staticvoidMain(string[]args){Foo(30);}publicstaticintFoo(inti){if(i<=0){return0;}elseif(i>0&&i<=2){return1;}else{returnFoo(i-1)+Foo(i-2);}}35.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。

staticvoidMain(string[]args){int[]array=GenerateNums(100);}publicstaticint[]GenerateNums(intlength){int[]array=newint[length];ArrayListlist=newArrayList();Randomrandom=newRandom();while(list.Count

答:解1:selecttop10*fromAwhereidnotin(selecttop30idfromA)

解2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)

37、索引的作用?和它的优点缺点是什么?

索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

38、什么是事务?什么是锁?

事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。

39、什么叫视图?游标是什么?

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要

40、触发器的作用?

触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

41、什么是SQL注入式攻击?

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

42、横表、纵表转换

纵表结构TableA

Name

Course

Grade

张三

语文

75

数学

80

英语

90

李四

95

55

横表结构TableB

0

先理解:

selectName,

(caseCoursewhen‘语文‘thenGradeelse0end)as语文,

(caseCoursewhen‘数学‘thenGradeelse0end)as数学,

(caseCoursewhen‘英语‘thenGradeelse0end)as英语

fromTableA

然后理解标准答案:

sum(caseCoursewhen‘语文‘thenGradeelse0end)as语文,

sum(caseCoursewhen‘数学‘thenGradeelse0end)as数学,

sum(caseCoursewhen‘英语‘thenGradeelse0end)as英语

groupbyName

横表转纵表的"SQL"示例

横表结构:TEST_H2Z

ID姓名语文数学英语

1张三809070

2李四908595

3王五887590

转换后的表结构:

ID姓名科目成绩

1张三语文80

2张三数学90

3张三英语70

4李四语文90

5李四数学80

6李四英语99

7王五语文85

8王五数学96

9王五英语88

横表转纵表SQL示例:SELECT姓名,'语文'AS科目,语文AS成绩FROMTEST_H2ZUNIONALLSELECT姓名,'数学'AS科目,数学AS成绩FROMTEST_H2ZUNIONALLSELECT姓名,'英语'AS科目,英语AS成绩FROMTEST_H2ZORDERBY姓名,科目DESC;

43、删除姓名、年龄重复的记录

Idnameagesalary

1yzk801000

2yzk802000

3tom2020000

4tom2020000

5im2020000

//取得不重复的数据

select*fromPersonswhereIdin(SELECTMAX(Id)ASExpr1FROMPersonsGROUPBYName,Age)

根据姓名、年龄分组,取出每组的Id最大值,然后将Id最大值之外的排除。

删除重复的数据:

deletefromPersonswhereIdnotin(SELECTMAX(Id)ASExpr1FROMPersonsGROUPBYName,Age)

44.假设数据库中有User和Income两张表如下,请仔细分析下方的示例数据,然后写出SQL,得到右方的查询结果。

答:selectName,Year,Month,Incomefrom(selectUserId,Year,Month,Sum(Amount)IncomefromIncomegroupbyUserId,Year,Month)Ajoin[User]onA.UserId=[User].Id

45.现有如下实体类:

publicclassUser{publicintId{get;set;}publicstringName{get;set;}}publicclassIncome{publicintId{get;set;}publicintUserId{get;set;}publicdecimalAmount{get;set;}publicintYear{get;set;}publicintMonth{get;set;}}publicclassUserIncomeDto{publicstringName{get;set;}publicintYear{get;set;}publicintMonth{get;set;}publicdecimalIncome{get;set;}}请用LINQ的方式得到上一题的查询结果。

publicListGetUserIncomeDtos(Listusers,Listincomes){varquery1=fromincomeinincomesgroupincomebynew{income.UserId,income.Year,income.Month}intogselectnew{g.Key.UserId,g.Key.Year,g.Key.Month,Income=g.Sum(s=>s.Amount)};varquery2=fromincomeinquery1joinuserinusersonincome.UserIdequalsuser.IdselectnewUserIncomeDto(){Name=user.Name,Year=income.Year,Month=income.Month,Income=income.Income};returnquery2.ToList();}

THE END
1.说明文的说明方法三、了解说明文的说明方法及作用 为了把事物的特征说清楚,或把事理阐述清楚,说明文往往采用恰当的说明方法。常用的说明方法有:下定义、举例子、分类别、打比方、作比较、摹状貌等。恰当的说明方法能将深奥复杂的知识通俗化、简单化,将抽象思辨的内容具体化、形象化,使读者更容易理解被说明的事物和要阐明的道理。 https://www.yuwenmi.com/zuowen/shuomingwen/3623859.html
2.从《康德哲学讲演录》通俗理清三大批判内容(康德哲学讲演录)书评从《康德哲学讲演录》通俗理清“纯粹理性批判”(关于认识论)、“实践理性批判”(关于道德以及宗教的)、“判断力批判”(关于审美的),三者即知、意、情。《纯粹理性批判》:一、背景:休谟的怀疑主义经验论,他认为一切离开我们直觉所获得印象、知觉的知识都是值得怀疑的,我们的认识永远超不出我们的感觉。他举了因果性https://book.douban.com/review/13979736/
3.浅析数学语言在教学中的作用论文(通用12篇)浅析数学语言在教学中的作用论文 篇1 一、数学语言的含义 数学学科与其他学科的一个显著区别,在于数学学科中充满着符号、图形和图像,它们按照一定的规则表达数学意义,交流数学思想,这些符号、图形和图像就是数学语言。数学语言可分为两种:一种是抽象的符号语言,另一种是直观的图形、图像语言。数学符号和图形、图像是https://bylw.yjbys.com/shuoshi/52964.html
4.初一上册生物:光合作用的知识点(精选7篇)初一上册生物:光合作用的知识点(精选7篇) 漫长的学习生涯中,看到知识点,都是先收藏再说吧!知识点也可以通俗的理解为重要的内容。为了帮助大家掌握重要知识点,下面是小编整理的初一上册生物:光合作用的知识点,供大家参考借鉴,希望可以帮助到有需要的朋友。 https://www.oh100.com/chuyi/1559055.html
5.说明文的说明方法举例(三)比拟的作用: 1、色彩鲜明; 2、描绘形象; 3、表意丰富。 (四)运用比拟应注意事物本身的特征。 (五)比喻和比拟的不同点。 1、比拟是仿照“拟体”(被模拟的事物)的特征摸写本体,重点在拟;比喻是用喻体比方本体,重点在“喻”。 2、比拟中,本体和“拟体”彼此交融,浑然~体,本体必须出现,”拟体”一般不https://www.ruiwen.com/zuowen/shuomingwen/920093.html
6.意义和作用一样吗两者是什么意思意义和作用不一样,作用是因,影响是果,意义是“果”的反思。意义、作用的区别为:意思不同、出处不同、侧重点不同。作用:对事物产生影响。意义:语言文字或其他信号所表示的内容。出处不同:作用出自孙犁《秀露集·文学和生活的路》;意义出自鲁迅《花边文学·“此生或彼生”》 http://www.chusan.com/zhongkao/237708.html
7.Unity面试题(含答案)x线影像半影影像表面上那些被特定光源直接照射十二:请简述sealed关键字用在类声明时与函数声明时的作用 sealed修饰的类为密封类,类声明时可防止其他类继承此类,在方法中声明则可防止派生类重写此方法。 十三:请简述private,public,protected,internal的区别 public:对任何类和成员都公开,无限制访问 private:仅对该类公开 https://blog.csdn.net/gcs6564157/article/details/60959610
8.Java高级工程师常见面试题(答案)[通俗易懂]5. Java中的队列都有哪些,有什么区别。 Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。 Queue的实现 1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队https://cloud.tencent.com/developer/article/2037272
9.交流沟通技巧在告知病人及其家属病人患有重病的消息时,经验表明,简单而清楚的表达,并作适当停顿是很有效的方法,这样可以确保病人及其家属能够完全听懂并明白这一信息。此时,要留一点时间让病人沉默、流泪以及提问,这一点很关键。 (五)尽量做到通俗易懂 在医患沟通过程中,医生一定不要在病人面前大唱独角戏,解释要尽量简短清晰。根https://m.jy135.com/zhichang/862697.html
10.中国古典美学史(上下)第五编中国古典美学总结期在线免费阅读不过,王夫之强调诗的审美价值,提出诗重在“即事生情,即语绘状”,“永言和声”而不同于“从实著笔”的史,这对廓清“诗即史”的流弊是有积极意义的。 第三节 “墨点无多泪点多” 清初艺林,亦以遗民称重。陈洪绶、恽格、萧云从、项圣谟、查士标、龚贤、程邃、程正揆、王时敏、周亮工等,无一不是遗民,其中尤https://fanqienovel.com/reader/7302277899166420003
11.论文中理论意义和现实意义的区别现实意义指某些东西在现实中具有一定的可操作性,并且有一定的价值.这就是现实意义,它是一种很客观的东西,不能依赖人的主观意志而改变。 区别:理论意义的作用是指向理论的,不同于对现实生活现实人生的认识改造。理论意义的作用是精神性的,不同于现实意义的物质性。 https://www.igaichong.com/article/d2c1ca9986986bdcae73a4d5.html
12.《音乐学理论重点知识汇总》浮图千代^第1章^最新更新:2022013.民间音乐变异性及作用与意义 ①地域性变异。一支民间歌曲在异地流传时,会因唱词方音的变化而导致旋律的变化,也会因各地人们的性格特征的不同而发生曲调情绪上的变化 ②情感渲染性变异 ③表现功能拓宽性变异。一曲多用,《孟姜女》表现主人公的愁苦情绪;表现爱情《送情郎》;演义小说中的英雄人物《三国叹十声》;时https://www.jjwxc.net/onebook.php?novelid=6431547&chapterid=1
13.85道Java微服务面试题整理(助力2020面试)38、Web,RESTful API 在微服务中的作用是什么? 39、您对微服务架构中的语义监控有何了解? 40、我们如何进行跨功能测试? 41、我们如何在测试中消除非决定论? 42、Mock 或 Stub 有什么区别? 43、您对 Mike Cohn 的测试金字塔了解多少? 44、Docker 的目的是什么? https://maimai.cn/article/detail?fid=1411910312&efid=Wu_y-Aor0ocYJxLKspFj_A
14.?汉语修辞学摘要(一)B.对暗含意义的补充。暗含意义是言语表达者通过特定话语形式实际想要表达的而与话语意义不同或相反的含意,它处于说话人的第二个层面,也就是话语的言下之意、弦外之音。 3.创设变异功能 指语境为修辞变异创造了条件,并使修辞变异在特定的语境中正常化。 https://www.jianshu.com/p/76e9029c147d
15.用药物成功诱导全能干细胞,成果意义有多大?5,假如证明是真的,有什么意义? 01,该研究的背景 在开始前,我们先来说一说背景 干细胞,大家应该比较熟悉,能够进行分化,通俗地说,就是变成多种类型的细胞。 当然,根据干性,可以分为许多类。比如干性最强的全能干细胞,能够分化成所有的细胞类型。多能干细胞,能够分化成一系列细胞类型。当然还有专能干细胞,比如我们https://www.bijie.gov.cn/bm/bjstjj/zl/kpzs_tjj/202206/t20220629_75328607.html
16.商业银行资产证券化实务*通俗来讲就是把一系列的资产打包,然后进行相应的分割,所以多个资产组合在一起就形成了资产池。 *资金池的作用: 一是扩大资产规模; 二是利用资产池中不同的资产在风险表现上的不同特征,能够起到一定的分散作用,一般说不能具有同质化的资产,不然容易摸一个风险事件就会导致整个资产池的大面积违约。 https://www.meipian.cn/rg6u1gj