zoukankan      html  css  js  c++  java
  • .net基础收集

    最近的面试让我知道基础知识的重要性,而我也每天都在网上找一些基础题来看。其实面试无非都是一些理论基础,只有基础过关了,才会被问到技术性的问题,所以第一关一定要打好。下面是我收集的一些题目以及答案(答案可能有些包含我自己的见解,如有错误请指出)。

    1.面向对象的三大特性

    封装、继承、多态

    2.装箱和拆箱

    装箱:值类型转换为引用类型
    拆箱:引用类型转换为值类型

    .NET中,数据类型划分为值类型和引用(不等同于C++的指针)类型,与此对应,内存分配被分成了两种方式,一为栈,二为堆,注意:是托管堆。
    值类型只会在栈中分配。
    引用类型分配内存与托管堆。
    托管堆对应于垃圾回收。

    3.C#可否对内存进行直接的操作?

    可以,通过加一个unsafe关键字实现。

    4.C#中结构和类的区别

    机构和类具有大体的语法,结构受到的限制比类要多。结构不能声明构造函数。结构是值类型,类是引用类型。结构的实例化可以不使用new关键字。类可以实现接口,结构不可以。

    5.接口可否继承接口?抽象类可否实现接口?抽象类可否继承实体类?

    (1)接口可以继承接口

    (2)抽象类可以实现接口

    (3)抽象类可以继承实体类,但是有个条件,实体类必须有明确的构造方法。

    6.构造器Constructor是否可以被继承?是否可以被重写(Override)?

    构造器不可以被继承,因此不能被重写,但可以被重载(overload)。

    7.Error和Exception的区别

    error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况; exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

    8.说说你对C#中的委托的理解

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。事件是一种消息机制,是一种委托,委托不带方法体。

    9.简述反射与序列化

    反射:其实就对程序集的动态操作,程序集包括了模块,而模块里面包含类型,类型又包含成员。反射提供了封装程序集,模块和类型的对象。

    我们可以使用反射动态的创建类型的实例,将类型绑定到现有的对象,或者从现有对象中获取类型,然后就可以调用类型的方法或访问字段和属性了。

    序列化:简单理解成把对象转换为容易传输的格式的过程。比如,可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器端之间传输该对象。

    在另一端可以使用反序列化从该流重新构造对象。

    10.C#中值类型和引用类型的区别

    (1)值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。

    (2)值类型存取速度快,引用类型存取速度慢。

    (3)值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用

    (4)值类型继承自System.ValueType,引用类型继承自System.Object

    (5)栈的内存分配是自动释放;而堆在.NET中会有GC来释放       

    (6)值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

    欢迎补充……

    11.谈谈你对三层架构的认识

    (1)DAL:数据访问层,直接对数据库进行增删改查。

    (2)BLL:业务逻辑层,对数据业务的处理。

    (3)UI:表现层,对处理过的数据展现给用户。

    优点:体现面向对象编程的思想:高内聚低耦合,提高扩展性。

    12. ado.net使用到哪些类?

    SqlConnection、SqlDataAdaptor、DataSet、SqlCommand、SqlDataReader

    13.SQL语句实现分页:在表T中(有自增子段ID)查询第31-40条记录

    select * from (select ROW_NUMBER() over (order by ID) as rowNum,* from T) as t  where rowNum between 31 and 40

    欢迎各位补充,希望这些对需要的人有点用。

  • 相关阅读:
    BadUSB 利用
    java 将函数作为参数传递
    odoo12 修行提升篇之 常用的高阶函数 (二)
    odoo12 修行提升篇之 异步定时任务 (一)
    odoo12 修行基础篇之 利用kanban做分析 点击跳转分析模型列表 (九)
    odoo12 修行基础篇之 kanban (八)
    odoo12 修行基础篇之 记录批处理 (七)
    odoo12 修行基础篇之 列表的筛选和分组 (六)
    odoo12 修行基础篇之 添加记录编码 (五)
    odoo12 修行基础篇之 添加工作流和操作记录 (四)
  • 原文地址:https://www.cnblogs.com/rainlam163/p/3186856.html
Copyright © 2011-2022 走看看