zoukankan      html  css  js  c++  java
  • c# 面试题

    .NET和C#有什么区别?
    答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。
    C#是一种编程语言,可以基于.NET平台的应用。


    C#中的委托是什么?事件是不是一种委托?
    委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。
    是,是一种特殊的委托


    简述 private、 protected、 public、internal 修饰符的访问权限。
    private : 私有成员, 在类的内部才可以访问。
    protected: 保护成员,该类内部和继承类中可以访问。
    public: 公共成员,完全公开,没有访问限制。
    internal:在同一命名空间内可以访问。


    override与重载的区别
    重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
    Override是进行基类中函数的重写。为了适应需要。


    什么是装箱和拆箱?
    从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

    请详述在dotnet中类(class)与结构(struct)的异同?
    Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.


    启动一个线程是用run()还是start()?
    启动一个线程是调用start()方法


    接口是否可继承接口? 抽象类是否可实现接口? 抽象类是否可继承实体类?
    接口可以继承接口。抽象类可以实现接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。


    sleep()和 wait() 有什么区别?
    sleep()方法是使线程停止一段时间的方法。
    wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。


    进程和线程的区别?
    进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

    向服务器发送请求有几种方式?
    get,post。get一般为链接方式,post一般为按钮方式。

    在c#中using和new这两个关键字有什么意义
    using 引入名称空间或者使用非托管资源
    new新建实例或者隐藏父类方法

    什么叫做SQL注入,如何防止?
    用sql关键字对网站进行攻击。过滤关键字'等

    什么是反射?
    动态获取程序集信息


    c#中的三元运算符是?
    ?:。


    委托声明的关键字是
    delegate

    const和readonly有什么区别?
    const关键字用来声明编译时的常量 readonly用来声明运行时的常量

    接口和抽象类的区别是什么?
    接口中所有的方法都不能有实现,并且不能指定方法的修饰符
    抽象类中可以有方法的实现,也可以指定方法的访问修饰符
    第一个继承接口的类必须实现接口里的所有方法
    而抽象类中抽象方法的实现是由第一个非抽象的派生类来实现


    C#是否支持多重继承?
    不支持。多重继承指的是一个类可以同时继承多个类,比如A类继承自B类和C类,这就是多重继承。C#只能继承一个类,但是可以继承多个接口。

    int,string,hashtable,datetime,datatable中哪些是引用类型?
    string,hashtable,datatable

    值类型和引用类型的区别。
    1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。
    2. 值类型存取速度快,引用类型存取速度慢。
    3. 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
    4. 值类型继承自System.ValueType,引用类型继承自System.Object
    5. 栈的内存分配是自动释放;而堆在.NET中会有GC来释放
    6. 值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
    7. 值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。


    如何在C#中实现继承?也就是继承的格式
    在类名后加上一个冒号,再加上基类的名称。


    C#中所有对象共同的基类是什么?
    System.Object

    面向对象的特征有哪些方面?
    面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。
    封装:封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。
    抽象:抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类
    继承:子类继承父类成员,实现代码复用,提高了软件的可重用性和可扩展性。
    多态:不同子类对同一个消息作出不同的反映,提高软件灵活性

    什么是依赖注入
    依赖注入是一种解除类之间直接依赖关系的方法,有以下几种注入方式:构造函数注入,属性注入,方法注入

    什么是事务?什么是锁?
    事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。
    锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。

    什么是索引,有什么优点?
    索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。

    视图是什么?游标是什么?
    视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作;视图通常是一个或多个表的行或列的子集;
    视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相比多表查询更方便),限制数据检索(比如需要隐藏某些行或列),维护更方便。
    游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、


    什么是存储过程?有什么优点?

    存储过程是一组予编译的SQL语句
    它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
    2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
    3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
    4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。


    列举ADO.NET中的五个主要对象,并简单描述
    Connection连接对象,Command执行命令和存储过程,DataReader向前只读的数据流,DataAdapter适配器,支持增删查询,DataSet数据级对象,相当与内存里的一张或多张表。

    概述三层结构体系
    表示层(UI),业务逻辑层(BLL),数据访问层(DAL)

    C#中的接口和类有什么异同?
    答:异:接口不能直接实例化。
        接口不包含方法的实现。
        接口、类和结构可从多个接口继承。但是C#类只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。

      同:接口、类和结构可从多个接口继承。
        接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
        接口可以包含事件、索引器、方法和属性。

    死锁的必要条件?怎么克服?
    系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。


    如何处理几十万条并发数据?
    用存储过程或事务。取得最大标识的时候同时更新。注意主键不是自增量方式,这种方法并发的时候是不会有重复主键的。取得最大标识要有一个存储过程来获取.

    多看一下LINQ。

  • 相关阅读:
    md5编码的两个程序
    DotNetNuke 5 User's Guide Get Your Website Up and Running读书摘录3
    纪念今天DNN密码破解
    DotNetNuke 5 User's Guide Get Your Website Up and Running读书摘录4
    文件与目录的默认权限与隐藏权限(转)
    EXT2 文件系统
    磁盘与目录的容量(转)
    文件的搜寻(转)
    权限与命令间的关系(转)
    账户切换(转)
  • 原文地址:https://www.cnblogs.com/yingxl/p/11189672.html
Copyright © 2011-2022 走看看