• .net 笔试面试总结(2)


    • 在.net 中类(class) 与结构(Struct)的异同。

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

          Struct 属于值类型,是分配在内存的栈上的。结构体是复制传递的。

          Boolean等属于结构体。

    • 堆和栈的区别

          栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存         中

          堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存大小。

    • GC是什么?为什么要有GC?

          GC是垃圾收集器(Garbage Collection) 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的       释放,对于非托管资源         则不能使用GC进行回收,必须由程序员手动回收,一个例子就是FileStream 或者SqlConnection 需要程序       员调用Dispose进行资源的回收。

    • 值类型和引用类型的区别?
    1.  将一个值类型变量赋值给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
    2.  值类型不可能派生出新的类型:所有的值类型均隐式派生自System.ValueType。但与引用类型相同的是,结构也可以实现接口。
    3.  值类型不可能包含null值;然而,可空类型功能允许将null 赋给值类型。
    4.  每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
    • C# 中的接口和类有什么异同。

         不同点: 不能直接实例化接口。 接口不包含方法的实现。 接口可以多继承,类只能单继承。 类定义可在不同的源文件之间进行拆分。

         相同点:  接口、类和结构体都可以从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口所有成员。

         接口和类都可以包含事件、索引器、方法和属性。

    • abstract class 和interface 有什么区别?

         相同点:都不能被直接实例化,都可以通过继承实现其抽象的方法。

         不同点: 接口支持多继承;抽象类不能实现多继承。接口只能定义行为;抽象类既可以定义行为,还可以提供实现。

         接口只包含方法(Method) 、属性(Property)、索引器(Index) 、事件(Event)的签名定义字段和包含实现方法。

         接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。

         加分的补充回答:讲设计模式的时候SettingsProvider的例子。

         

         

  • 相关阅读:
    iptables conntrack和state的区别
    shell中test命令方法详解
    Linux Shell 中各种括号的作用 ()、(())、[]、[[]]、{}
    mac terminal ssh连接linux乱码问题
    iptables 教程,iptables 详解,iptables 常见使用实例
    Redis实现主从复制(Master&Slave)
    TCP回射客户服务器模型(02 设置套接字选项、处理多并发)
    TCP回射客户服务器模型(01 socket bind listen accept connect)
    socket套接字(字节序、地址转换)
    TCP特点
  • 原文地址:https://www.cnblogs.com/wktang/p/10356634.html
Copyright © 2020-2023  润新知