答:值类型就是一块内存空间,存的是数据本身,引用类型需要两块内存空间,一个是存地址,一个是存数据。
2. ASP.Net 页面生命周期 ?
答:页请求,开始,页初始化,加载,验证,回发事件处理,呈现,卸载。
3.简述private,protected,public,internal
答 . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
4.string str = null 与string str = ""的区别
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。
5.ADO.NET五大对象,作用
1、 Connection:与数据源建立连接。
2、 Command:对数据源执行SQL命令并返回结果。
3、 DataReader:读取数据源的数据,只允许对将数据源以只读、顺向的方式查看其中所存储的数据。DataReader对象还是一种非常节省资源的数据对象。
4、 DataAdapter:对数据源执行操作并返回结果,在DataSet与数据源之间建立通信,将数据源中的数据写入DataSet中,或根据DataSet中的数据绑定数据源。
5、 DataSet:内存中的数据库,是数据表的集合,它可以包含任意多个数据表。
6.ASP.NET 页面之间传递值的几种方式。
答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量- 3.使用Server.Transfer 4.使用Application
5.使用HttpContext的Item属性 6.使用文件 7.使用数据库 8.使用Cookie
7.请编程实现一个冒泡排序算法?
答:int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;P
array[j] = temp ;
}
}
}
8.string和stringbuilder两者的区别:
string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。
对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接较少的情况下,过度滥用stringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑stringBuilder来实现。事实上,一般连接次数设置100次以内,根本看不出两者的性能差别。
当修改字符串信息时,此时不许创建对象,可以使用stringBuilder对象。
9.多线程和异步有什么关系和区别?
多线程是实现异步的主要方式之一,异步并不等同于多线程。实现异步的方式还有很多,比如利用硬件的特性、使用进程或纤程等。在。NET中就有很多的异步编程支持,比如很多地方都有Begin***、End***的方法,就是一种异步编程支持,她内部有些是利用多线程,有些是利用硬件的特性来实现的异步编程。
10.线程池的优点有哪些?又有哪些不足?
优点:减小线程创建和销毁的开销,可以复用线程;也从而减少了线程上下文切换的性能损失;在GC回收时,较少的线程更有利于GC的回收效率。
缺点:线程池无法对一个线程有更多的精确的控制,如了解其运行状态等;不能设置线程的优先级;加入到线程池的任务(方法)不能有返回值;对于需要长期运行的任务就不适合线程池。
11.什么是委托,事件是委托吗?
委托是C#新增的概念,在C++中没有。不过委托的概念与C++的函数指针比较相近。如图函数指针,委托可以引用一个或多个方法(静态或非静态)。委托比函数指针更为强大,同一个委托可以引用不止一个方法,而且语法更加清晰和好用。
事件是一种特殊的委托。
12.Finalize,Dispose()的区别
Finalize自动释放资源,Dispose()用于手动释放资源。
1、 Finalize只释放非托管资源;
2、 Dispose释放托管和非托管资源;
3、 重复调用Finalize和Dispose是没有问题的;
4、 Finalize和Dispose共享相同的资源释放策略,因此他们之间也是没有冲突的。
13.字段与属性有什么异同
字段用于直接存取数据,而属性本身不能够直接存取数据,它相当于包裹在字段外的一层壳,用于对其内部字段的访问进行权限控制。、
14.Session 有什么重大 BUG,微软提出了什么方法加以解决?
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,
可以用Sateserver或SQLServer数据库的方式存储Sessiion不过这种方式比较慢,而且无法捕获Session的END事件。
15.DateTime.Parse(myString); 这行代码有什么问题?
答:有问题,当myString不能满足时间格式要求的时候,会引发异常,简要使用DateTime.TryParse().
同时,还需要注意到文化区域的设置,如果做代码规范检查,该语句也不符合规范,就是因为缺少文化区域的设置