zoukankan      html  css  js  c++  java
  • .NET问题库

     1. 值类型和引用类型的区别 
    答:值类型就是一块内存空间,存的是数据本身,引用类型需要两块内存空间,一个是存地址,一个是存数据。 
     

    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().
    同时,还需要注意到文化区域的设置,如果做代码规范检查,该语句也不符合规范,就是因为缺少文化区域的设置

  • 相关阅读:
    HBase 安装设置
    Python中通过函数对象创建全局变量
    Scala 中 构造函数,重载函数的执行顺序
    Hive 安装配置
    976. 三角形的最大周长
    922. 按奇偶排序数组 II
    350. 两个数组的交集 II
    349. 两个数组的交集
    242. 有效的字母异位词
    925. 长按键入
  • 原文地址:https://www.cnblogs.com/Q28200816/p/6644653.html
Copyright © 2011-2022 走看看