• .NET面试题


    1.三层架构

    表示层(UI):实现数据呈现,用户交互

    业务逻辑层(BLL):业务表现层实现与表示层的沟通,业务规则层实现用户业务逻辑

    数据访问层(DAL):对数据进行操作,实现数据的增删改查

    优点:分工明确,条理清晰,易于调试,而且具有可扩展性

    缺点:增加开发成本

    2.类(class)与结构(struct)的异同

    Class可以实例化,属于引用类型,是分配在内存中的堆上的。

    类是引用传递 Struct属于值类型,是分配在内存的栈上。

    结构是复制传递

    3.堆跟栈的区别

    栈是在编译期间就分配好的内存空间,局部值类型变量,值类型参数等都在栈内存中 堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要堆内存的大小

    4.String s=new string("xyz");创建了几个String Object?

    两个对象,一个是”xyz“,一个是指向”xyz“的引用对象

    5.C#中的接口和类有什么异同?

    不同点:

    1.不能直接实例化接口;

    2.接口不包括方法的实现;

    3.接口可以多继承,类只能单继承

    相同点:

    1.接口,类和结构都可以从多个接口继承;接口类似于抽象基类;     

     2.继承接口的任何非抽象类型都必须实现接口的所有成员;        

    3.接口和类都可以包含事件,索引器,方法和属性;

    6.抽象类和接口有什么区别?

    相同点:

    都不能被直接实例化,都可以通过继承实现其抽象方法

    不同点:

    1.接口支持多继承,抽象类不支持多继承;接口只定义行为,抽象类既可以定义行为,还可以提供实现        

    2.接口只包含方法(Method),属性(Property),索引器(index),事件(Event)的签名,但不能定义字段和包含实现方法;        

    3.抽象类可以定义字段,属性,包含实现方法;

    7.new关键字的用法    

    new 运算符  用于创建对象和调用构造函数  

    new 修饰符  用于向基类成员隐藏继承成员

    8.线程与进程的区别

      进程定义的是应用程序与应用程序的边界,不同的进程不能共享代码和数据空间   线程定义的是代码执行堆栈和执行上下文的边界

    9.DataReader和DataSet的异同?

      DataReader使用时始终占用Sqlconnection,在线操作数据库,每次只在内存中加载一条数据,所以占用的内存很小  

    DataSet则是将数据一次性加载在内存中,抛弃数据库连接,读取完毕即放弃数据库连接,将数据全部加载在内存中,所以比较耗内存

    10.简述private,protected,public,internal修饰符的访问权限

       private:私有成员,在类的内部才可以访问   

      protected:保护成员,该类内部和继承类中才可以访问   

      public:公共成员,完全公开,没有访问权限   

       internal:在同一程序集内可以访问

    11.列举ASP.NET页面之间传递值的几种方式      

    1.使用Querystring,如....?id=1;response.redirect()...   

    2.使用session变量   

    3.使用server.tranfer   

    4.使用Application   

    5.使用Cache   

    6.使用HttpContex的item属性   

    7.使用文件   

    8.使用数据库   

    9.使用Cookie

    12.override与重载的区别      

    重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要   

    override是进行基类中虚函数或抽象函数的重写,用于实现多态

    13.什么是装箱和拆箱?       

    装箱:从值类型转换到引用类型    

    拆箱:用引用类型转换到值类型

    14..net中读写数据库需要用到哪些类?他们的作用?

        DbConnection:数据库连接类    

    DataCommand:执行语句命令    

    DataSet:数据集    

    DataAdapter:数据适配器,用于填充数据到数据集    

    DataReader:数据读取器

    15.在C#中,string str=null与string str=""请尽量使用文字或图像说明其中的区别

       string str=null是不给他分配内存空间,而string str=""给它分配长度为空字符串的内存空间

    16.面向对象的语言具有封装性,继承性,多态性

    17.软件开发过程一般有几个阶段?每个阶段的作用?   

    可行性分析(风险控制),需求分析,架构设计,代码编写,测试,部署,维护

  • 相关阅读:
    Java基础学习——异常机制与集合的结合练习
    公司标签
    【JS语法糖】常见的几种JS语法糖
    webstorm批量替换
    webstorm 全局搜索快捷键_IntelliJ 的搜索和全局搜索怎么用
    存放缓存的三种方式 Redis、Memcache和MongoDB的区别
    Airtest学习(二)Airtest-Selenium 点击 断言 生成报告
    使用git克隆指定分支的代码
    nodejs v16.x 或更高版本不支持 Fibers
    使用 nvm 管理多个版本的 nodejs 和 npm,nvm的命令合集
  • 原文地址:https://www.cnblogs.com/xiaomayizoe/p/5092020.html
Copyright © 2020-2023  润新知