首页 > 其他 > 详细

2 名企面试_02

时间:2019-12-12 11:02:21      阅读:69      评论:0      收藏:0      [点我收藏+]

1 如何把一个数组复制到ArraryList?反过来从ArraryList到数组?

  答案: copyTo 方法可以将Arrarylist中的元素浅拷贝到arrary中

2、C#中数组、ArrayList和List三者的区别

答案:数组在C#中是最早出现的。它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单。可以利用偏移地址访问元素,时间复杂度为O(1);可以用折半查找法查找元素,效率高。

但是声明数组,必须确定其长度。分配空间时必须确定大小。空间的连续,也导致了存储效率低,插入和删除元素效率比较低,而且麻烦。如果,要增添一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样,你想删除一个元素,需要移动大量元素去填补被移动的元素。

ArrayList是.Net Framework提供的用于数据存储和检索的专用类,它是命名空间System.Collections下的一部分。它的大小是按照其中存储的数据来动态扩充与收缩的。所以,我们在声明ArrayList对象时并不需要指定它的长度。

 ArrayList继承了IList接口,所以它可以很方便的进行数据的添加。但是  ArrayList不是类型安全的。既使我们保证在插入数据的时候都很小心,都有插入了同一类型的数据,但在使用的时候,我们也需要将它们转化为对应的原类型来处理。这就存在了装箱与拆箱的操作,会带来很大的性能损耗

正是因为ArrayList存在不安全类型与装箱拆箱的缺点,所以在C#2.0后出现了泛型的概念。而List类是ArrayList类的泛型等效类。它的大部分用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。这样就避免了前面讲的类型安全问题与装箱拆箱的性能问题了。

3 string str =null 和string str=""的区别?

答案:前者不分配内存,后者分配内存

4 stringBuilder的用处?

答案: stringbuilder 是一个字符串构造器,构造字符串时,可以不产生大量的临时字符串,提高性能。同时也可以与非托管代码进行交互

5

2 名企面试_02

原文:https://www.cnblogs.com/hnzheng/p/12027628.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!