1、String str=new String("a")和String str = "a"有什么区别?

String str = "a"; 这个只是一个引用,内存中如果有“a"的话,str就指向它,如果没有才创建如果你以后还用到"a"这个字符串的话并且是这样用: String str1 = "a"; String str2 = "a"; String str2 = "a"; 这4个变量都共享一个字符串"a" 而String str = new String("a");是根据"a"这个String对象再次构造一个String对象,将新构造出来的String对象的引用赋给str

2、判断字符串变量str是否为空的一下三种方法哪个性能更优:a、str=="";b、str==String.Empty;c、str.Length==0;?

答案是c;原因我就不说了。

3、string与String的区别

string、int是C#定义的类型,而String、Int32是.net类型即是CTS类型; 
string 是 .NET 框架中 System.String 的别名。 
string在编译的时候会转化为String类

4、虚方法(virtual )和抽象方法(abstract)的区别?

之一:抽象方法仅有声明,而没有任何实现,如abstract someMethod();,虚方法却不能如此
之二:子类继承父类,可以对父类中的虚方法进行重写、覆盖、不处理三种处理(见5),对抽象方法却必须实现

5、子类对父类中虚方法的处理有重写(override)和覆盖(new),请说明它们的区别?

有父类ParentClass和子类ChildClass、以及父类的虚方法VirtualMethod。有如下程序段:
ParentClass pc = new ChildClass();
pc.VirtualMethod(...);
如果子类是重写(override)父类的VirtualMethod,则上面的第二行语句将调用子类的该方法
如果子类是覆盖(new)父类的VirtualMethod,则上面的第二行语句将调用父类的该方法

6、抽象类(abstract)和接口(interface)的区别

抽象类可以有自己的实现,接口却仅有声明,可以有自己的静态数据字段;
java和C#中可以实现多个接口,却只能继承一个抽象类(或者非抽象类)(单继承,和c++的多继承不同);

*******************************************************************************************************************

如果你的简历上面写“熟悉/了解C#”,那么你就应该能够回答下面的这些基础问题。我将给出自己的简要答案以供参考。欢迎讨论。
如果是“精通”,那么请参考:http://www.cnblogs.com/dflying/archive/2006/04/01/364458.html

  1. 传入某个属性的set方法的隐含参数的名称是什么?
    value,它的类型和属性所声名的类型相同。
  2. 如何在C#中实现继承?
    在类名后加上一个冒号,再加上基类的名称。
  3. C#支持多重继承么?
    不支持。可以用接口来实现。
  4. 被protected修饰的属性/方法在何处可以访问?
    在继承或间接继承与这个类的子类中可以访问。
  5. 私有成员会被继承么?
    会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。
  6. 请描述一下修饰符protected internal。 
    被protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。
  7. C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
    两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。
  8. C#中所有对象共同的基类是什么?
    System.Object.
  9. 重载和覆写有什么区别?
    重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。
  10. 在方法定义中,virtual有什么含意? 
    被virtual修饰的方法可以被子类覆写。
  11. 能够将非静态的方法覆写成静态方法么?
    不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。
  12. 可以覆写私有的虚方法么?
    不可以,甚至子类中无法访问父类中的私有方法。
  13. 能够阻止某一个类被其他类继承么? 
    可以,使用关键字sealed。
  14. 能够实现允许某个类被继承,但不允许其中的某个方法被覆写么? 
    可以,标记这个类为public,并标记这个方法为sealed。
  15. 什么是抽象类(abstract class)?
    一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。
  16. 何时必须声明一个类为抽象类? 
    当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
  17. 接口(interface)是什么?
    只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。
  18. 为什么不能指定接口中方法的修饰符? 
    接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。
  19. 可以继承多个接口么? 
    当然。
  20. 那么如果这些接口中有重复的方法名称呢? 
    这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。
  21. 接口和抽象类的区别是什么? 
    接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。
  22. 如何区别重载方法? 
    不同的参数类型,不同的参数个数,不同的参数顺序。
  23. const和readonly有什么区别?
    const关键字用来声明编译时常量,readonly用来声明运行时常量。
  24. System.String 和System.StringBuilder有什么区别?
    System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。

.NET方向高级开发人员面试时应该事先考虑的问题

(澄清一下,我发帖的目的不是用来专门给人评价这些问题的好坏的,实际上我所在的公司就考察这些问题。而能够基本上答出来的可以说百里挑一。如果各位觉得这些问题很简单,那么基本上在.NET面试环节就没有什么问题了,同时欢迎提供一些更多的问题。如果还有些不知道,那么不妨静下心来思考一下(或者用15秒搜索一下),没有必要花太多时间来攻击题目的合理性。毕竟,几乎所有的面试都是这样。如果没法改变,我们还是学着适应吧。)

如果你的简历上面说“精通.NET”,那么下面的问题应该大都可以给出较完美的答案。我会稍后给出一些我的想法,还请各位不吝指正并参与讨论。也欢迎提供给我更多的问题。
这里还有一些基础问题:http://www.cnblogs.com/dflying/archive/2006/04/01/364458.html

注:对于每个判断是非问题,都要考虑“为什么”与“为什么不”。

    1. Thread和Process之间有什么区别?.NET新引入了Application Domain的概念,这样他们三个之间有什么区别?引入了Application Domain会带来一些潜在的问题么?
    2. Windows Service与普通的EXE在执行过程中有什么区别?
    3. 一个进程可以访问的Windows地址空间有多大?等于系统的虚拟内存大小么?这两方面将对系统的设计产生什么样的影响?
    4. EXE和DLL之间的区别是什么?在系统设计中应该如何选择使用它们?
    5. 普通的EXE与.NET EXE的执行过程有什么不同?
    6. 什么是弱类型,什么是强类型?在系统设计中应该首先考虑使用哪种类型?
    7. PDB文件是作什么用的?里面包含了什么信息?
    8. Cycloramic Complexity是什么?为什么它很重要?
    9. 为创建一个critical section以访问某个变量书写一个标准的lock() 并加上double check。
    10. 为某个对象实现标准的Dispose模式。
    11. 什么是FullTrust? 存在于GAC中的 assembly 拥有FullTrust么?
    12. 下面这个命令是做什么的?gacutil /l | find /i “system”
    13. 下面这个命令是作什么的? sn -t something.dll
    14. 跨防火墙的 DCOM必须打开哪个端口?端口135是用来做什么的?
    15. 有什么办法可以与现有unmanaged code集成?在集成的时候应该考虑什么问题?
    16. 简要解释一下OOP与SOA都是用来作什么的?
    17. XmlSerializer是如何工作的?进程运行XmlSerializer时候需要什么样的ACL权限?
    18. 在系统设计时,何时应该使用try catch?何时需要避免使用?
    19. Debug.Write()和Trace.Write()之间有什么区别?二者分别应该用于何处?
    20. Debug Build和Release Build有什么区别?在执行效率上有什么明显的区别么?
    21. JIT是针对Assembly还是Method发生的?解释一下为什么.NET的设计者要这样做?
    22. 简要描述一下GC的执行过程。
    23. 应该如何选择使用abstract class还是interface?
    24. 在设计一个自定义类型时应如何选择使用Value Type还是Reference Type?
    25. 对于Value Type和Reference Type,a.Equals(b)的默认实现方式有什么不同?
    26. .NET中为什么不提供默认的deep copy?如果需要,要如何实现deep copy?
    27. 相对于.NET 1.1,.NET2.0为了避免过度的boxing/unboxing造成的系统开销提供了哪些支持?
    28. String是Value Type还是Reference Type?为什么.NET中的String对象被设置成immutable?

C#面试 笔试题 六的更多相关文章

  1. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  2. Web前端面试笔试题总结

    最近一段时间要毕业了,忙着找工作,见过不少笔试面试题,自己总结了一些加上网上找的一些整合了一下.答案暂时都东拼西凑出来了,但是还是先不发出来,一方面是答案并不是唯一的并且自己的答案不能保证对,另一方面 ...

  3. python面试笔试题汇总

    Python面试攻略(嗨谈篇) 110道python面试笔试题汇总,你能答对几道? Python 面试问答 Top 25 2018 年最常见的 Python 面试题 & 答案

  4. 深圳市利汇电子商务科技有限公司2019年java面试笔试题

    垃圾公司,建议不要去,写的地址去了发现是两个公司公用一个办公场地,还没有公司的招牌,去了交简历给前台然后就是 填一份求职申请,一份笔试题如下,然后就等待,先是人事的一个小妹妹面试,问一些个人问题,为什 ...

  5. 分享18道Java基础面试笔试题(面试实拍)

    上图来自Java技术栈微信群里的群友分享,看起来比较基础,但不一定人人都答得上来. 图片比较模糊,小编把题目进行了文字化. 1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求 ...

  6. java面试笔试题大汇总

    第一,谈谈final, finally, finalize的区别.  最常被问到.   第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以 ...

  7. 110道python面试笔试题汇总,你能答对几道?

    数据分析系列教程插播一篇面试题教程,最近公众号新来了不少朋友,这几天不少粉丝留言说问我有没有python面试题,其实之前分享过一些面试题,今天统一再给大家分享一遍,也希望能帮助此时仍在找工作的同学,尽 ...

  8. 2019 奥买家java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.奥买家等公司offer,岗位是Java后端开发,因为发展原因最终选择去了奥买家,入职一年时间了,也成为了面试官 ...

  9. 2019 北森java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.北森等公司offer,岗位是Java后端开发,因为发展原因最终选择去了北森,入职一年时间了,也成为了面试官,之 ...

随机推荐

  1. SSM三大框架整合梳理

    整合步骤 0.搭建动态web项目 1.需要的jar包 spring(包括springmvc) mybatis相关jar包 mybatis与spring的整合包(个人建议尽量使用高版本的,避免出现一些奇 ...

  2. voc数据集坐标,coco数据集坐标

    voc,如上图 x1 ,y1 ,x4, y4    bbox的坐标格式是,x,y的最大最小值,也就是box的左上角和右下角的坐标 coco x,y,w,h       box左上角的坐标以及宽.高 图 ...

  3. AMROC可视化

    备注 通过修改Filetype来改变输出数据的类型. hdf2tab.sh转换全部数据文件 hdf2tab.sh -m多维数据 <!DOCTYPE html PUBLIC "-//W3 ...

  4. 学习日记7、mvc +easyui datagrid excel上传

    1.首先获取datagrid所有行的数据 var rows = $("#List").datagrid("getRows"); 2.进行数据转换转化成JSON格 ...

  5. 分页框架pager-taglib学习笔记

    说到分页其实可以研究一下我自己项目里面的分页框架的使用. 下面的笔记来自于孔浩老师的视频教程和我自己的开发实践. 使用Pager-taglib可以帮助我们快速开发分页处理. 下载:pager-tagl ...

  6. BaseFragment 基类代码

    public abstract class BaseFragment extends Fragment implements IBaseView { private List<BasePrese ...

  7. Oracle DataGuard日志传输

    1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志,其示意图如下: 注:上图来自<大话Oracle RAC> 其大致过程如下: 1)主库:日志先写入 ...

  8. TNS-12535

    Fatal NI connect error 12170. VERSION INFORMATION: TNS for Linux: Version 11.2.0.3.0 - Production Or ...

  9. p5341 [TJOI2019]甲苯先生和大中锋的字符串

    分析 TJOI白给题 建出sam,对于每个点如果它的子树siz和等于k 那么对于这个满足的点它有贡献的长度一定是一个连续区间 直接差分即可 代码 #include<bits/stdc++.h&g ...

  10. Windows命令学习

    总: 1.window dos命令不区分大小写  2.指令参数 /a   -a 等价 更倾向于 / 3.命令有疑问: CMD输入help 或者单条命令 /? help time /? 用到的实用命令总 ...