全文约4000字,预计阅读时间8分钟 马上要到2020年了,这里整理一个.NET 工程师面试题系列,希望年底或者明年金三银四跳槽的程序猿们带来一些帮助,建议收藏,如果文中答案有不准确的地方,请在评论中指出。 前文传送门
问题目录
问题和答案1. 字符串中string str=null和string str=""和string str=string.Empty的区别string.Empty相当于“”,Empty是一个静态只读的字段。string str="" ,初始化对象,并分配一个空字符串的内存空间 string str=null,初始化对象,不会分配内存空间 2. byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '啊'; byte g = 256; 这些变量有些错误是错再哪里?
3.string和StringBuilder的区别,两者性能的比较
4.什么是扩展方法?
5.byte a =255;a+=5;a的值是多少?byte的取值范围是-2的8次方至2的8次方-1,-256至258,a+=1时,a的值时0,a+=5时,a的值是0,所以a+=5时,值是4 6.什么是装箱和拆箱?
int i=0;
int i=0; 7.值类型和引用类型的区别
8.new关键字的作用
public class ItemFactory<T> where T : IComparable, new() 9. int?和int有什么区别
10. C#中的委托是什么?一句话解释就是:将方法当作参数传入另一个方法的参数。.net中有很多常见的委托如:Func 、Action 作用:提高方法的扩展性 11.用最有效的方法算出2乘以8等于几?位运算是最快,使用的是位运算 逻辑左位移<<。方法是2<<3相当于0000 0000 0000 0010 (2的16位int二进制)左移三位就是 0000 0000 0001 0000(16的二进制) 12.const和readonly有什么区别?都可以标识一个常量。主要有以下区别:
13.现有一个整数number,请写一个方法判断这个整数是否是2的N次方
如果要问如果是2的N次方,这个N是多少?这该怎么算? private static byte get(int n) 14.CTS、CLS、CLR分别作何解释CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
15.在.net中,配件的意思是?程序集。(中间语言,源数据,资源,装配清单) 16.分析下面代码,a、b的值是多少?string strTmp = "a1某某某"; 分析:一个字母、数字占一个byte,一个中文占占两个byte,所以a=8,b=5 17.Strings = new String(“xyz”);创建了几个String Object?两个对象,一个是“xyz”,一个是指向“xyz”的引用对象s。 18.静态成员和非静态成员的区别
19.c#可否对内存直接操作C#在unsafe 模式下可以使用指针对内存进行操作, 但在托管模式下不可以使用指针,C#NET默认不运行带指针的,需要设置下,选择项目右键->属性->选择生成->“允许不安全代码”打勾->保存 20.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?s1+1不能显式转换成short类型,可以修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确 21.什么是强类型,什么是弱类型?哪种更好些?为什么?强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。一般用于编译型编程语言,如c++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb,php等 22.using关键字的作用
23.ref和out有什么区别
24.a.Equals(b)和a==b一样吗?不一样,a==b仅仅表示a和b值相等,a.Equals(b)表示a与b一致 25.下面这段代码求值 class Class1 o1.count的值是多少? 答案:3,静态 构造方法计算一次,两个实例化对象计算两次。 26.关于构造函数说法正确的是哪个?a)构造函数可以声明返回类型。 b)构造函数不可以用private修饰 c)构造函数必须与类名相同 d)构造函数不能带参数 答案:c ,构造函数必须与类名相同,可以传递多个传递,作用就是便于初始化对象成员,不能有任何返回类型 27.Math.Round(11.5)等於多少? Math.Round(-11.5)等於多少?
28.&和&&的区别
&和&&都可作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,其结果才为true,否则,只要有一方为false,则结果为false。(ps:当要用到逻辑与的时候&是毫无意义,&本身就不是干这个的)
if(loginUser!=null&&string.IsnullOrEmpty(loginUser.UserName)) &&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,对于上面的表达式,当loginUser为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。(ps:所以说当要用到逻辑与的时候&是毫无意义的) & 是用作位运算的。
&是位运算,返回结果是int类型 &&是逻辑运算,返回结果是bool类型 29. i++和++i有什么区别?
30.as和is的区别
|
|
来自: dotNet全栈开发 > 《技术面试汇总与分析》