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

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/Q28200816/p/6644653.html
Copyright © 2011-2022 走看看