.NET技术类面试、笔试题汇总(7~12)

7、属性和public字段的区别是什么?

8、三层架构。

9、关于拆箱装箱。

10CTSCLRCLS分别作何解释。

11、在dotnet中类(class)和结构体(struct)的异同。

12、堆和栈的区别。

 

7、属性可以对设值、取值进行非法值控制,比如年龄禁止设置为负数,

     字段则不能进行这样的设置。

8、通常意义上的三层架构是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的是为了:“高内聚,低耦合。”

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

业务逻辑层(BLL):针对具体问题的操作,

数据访问层(DAL):该层所做事务直接操作数据库,针对数据进行增删改查等每一层都是垂直的关系。

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

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

缺点:增加成本

9、装箱:从值类型接口转换成引用类型;拆箱:从引用类型转换成值类型

      分析:CTS(Common Type System)是为了实现在应用程序声明和使用这些类型是必   须遵守的规则而存在的通用类型系统,整个系统的类型分为两大类,值类型和引用类型。

CTS中的所有东西都是对象,所有的对象都源自一个基类---System Object类型。值类型的一个最大的特点就是不能为null,值类型的变量总有一个值,为了解决值类型不能为null的问题,引入了拆箱装箱。装箱就是将值类型用引用类型包装起来转换为引用类型,而从引用类型拿到被包装的值类型数据进行拆箱

10、CTS:Common Type System 通用类型系统。Int32,Int16->int;String->string;每种语言都定义自己的类型,.Net通过CTS提供了公共的类型,然后翻译生成对应的.Net类型。

         CLS:Common Language Specfication通用语言规范。不同语言语法的不同。每种语言都有自己的语法,.Net通过CLS提供了公共语法,然后不同语言生成对应的.Net语法。

         CLR:Common Language Runtime 公共语言运行时。就是GC,JIT等。有不同的CLR,相当于一个发动机,负责执行IL。

11、类(Class)可以被实例化,属于引用类型,是分配在内存的堆上,类是引用传递的。结构体(Struct)是属于值类型是分配在内存的栈上的。结构体是复制传递的,Int32,Boolean等属于结构体。

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

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。