全球旧事资料 分类
软件工程师笔试题
et
笔试时间:40分钟答题人:__________
开始时间:__________
注:请将答案答于答题纸上,题目做擅长的即可,不必全部答完
1值类型和引用类型分别有什么区别?SystemValueType是一个什么类型?
答:值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等。
赋值方式:将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型变量的赋值不同,引用类型变量的赋值只复制对象的引用(即内存地址,类似C中的指针),而不复制对象本身。
继承:值类型不可能派生出新的类型,所有的值类型均隐式派生自SystemValueType。但与引用类型相同的是,结构也可以实现接口。
ull:与引用类型不同,值类型不可能包含
ull值。然而,可空类型功能允许将
ull赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值,值类型初始会默认为0,引用类型默认为
ull。
值类型存储在栈中,引用类型存储在托管堆中。SystemValueType是所有值类型的基类,ValueType是类类型但是他的子类却是值类型这是因为CLR对他的子类经过了特殊的处理CLR若判断某类继承自ValueType那么会在内存分配方面使它具有值类型的特征(例如直接分配在栈上)2SystemStri
g类型是引用还是值类型?其最大特点是?在字符串连加处理中,最好采用什么方式,理由是什么?答:stri
g是一个引用类型因为stri
g太常用,为了提高性能及开发方便,对stri
g做了特殊处理,给予了一些专用特性。有两个重要的特性:恒定性与驻留性。恒定性:字符串是不可变的,字符串一经创建,就不会改变,任何改变
f都会产生新的字符串。驻留性:相同的字符串在内存(堆)中只分配一次,第二次申请字符串
时,发现已经有该字符串时,直接返回已有字符串的地址;少量字符串连接,使用Stri
gCo
cat,大量字符串使用Stri
gBuilder,
因为Stri
gBuilder减少了内存的分配,性能更好,如果stri
g的话会创建大量字符串对象
3请描述一下委托?答:委托类似于C或C中的函数指针,允许将方法作为参数进行传递。1C中的委托都继承自SystemDelegate类型,本质上就是一个类;2委托类型的声明与方法签名类似,有返回值和参数;3委托是一种可以封装命名(或匿名)方法的引用类型,把方法当做指针传递,但委托是面向对象、类型安全的;4事件可以理解为一种特殊的委托,事件内部是基于委托来实现的。4通常异常处理分为那几部分?每一部分的分别有什么作用?r
好听全球资料 返回顶部