• 面试题整理:C#(一)


    该系列持续更新,从网上以及身边收集的问题

    1.可访问性级别有哪几种

    public 访问不受限制。
    protected 访问仅限于包含类或从包含类派生的类型。
    internal 访问仅限于当前程序集。
    protected internal 访问仅限于从包含类派生的当前程序集或类型。
    private 访问仅限于包含类型。

    2.String和StringBuilder的区别

    String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。
    StringBuilder对象在初始化以后只有一个对象。
    在频繁操作或拼接字符串时使用StringBuilder更好

    *String是引用类型,存放在堆上

    3.Struct和Class的区别

    class是引用类型,structs是值类型
    class创建在堆上。struct创建在栈上
    class可以有初始化器,struct不可以有初始化器
    class可以有明显的无参数构造器,但是Struct不可以
    class使用前必须实例化,struct不需要
    class支持继承和多态,struct不支持
    class的构造器不需要初始化全部字段,struct的构造器必须初始化所有字段
    class有面向对象的扩展优势,struct有性能优势

    4.应用程序域?托管代码?强类型系统?装箱和拆箱?重载?

    应用程序域(AppDomain)

    可以看成轻量级的进程,一个进程中可以包含多个应用程序域,一个应用程序域可以装载一个可执行程序(*.exe)或者多个程序集(*.dll)。这样可以使应用程序域之间实现深度隔离,即使进程中的某个应用程序域出现错误,也不会影响其他应用程序域的正常运作

    托管代码(Managed Code)

    中间语言(IL)代码,由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行,由CLR转换为计算机语言解释给计算机

    强类型系统

    所有变量必须被指定类型,没有强制类型转化前,不允许两种不同类型的变量相互操作

    装箱和拆箱

    箱是将值类型转换为引用类型,拆箱是将引用类型转换为值类型

    重载

    同一个类中有两个或多个名字相同但是参数不同的方法

    5.CTS、CLS和CLR分别作何解释?

    http://www.cnblogs.com/zagelover/articles/2741370.html

    CTS通用类型系统(Common Type System)

    描述了类型的定义和行为。

    CLS通用语言规范(Common Language Specification)

    是CTS的一个子集,它定义了希望编写在.NET平台上运行的程序的语言所需符合的最小规范

    CLR公共语言运行库(Common Language Runtime)

    CLR是CTS的实现,也就是说,CLR是应用程序的执行引擎和功能齐全的类库,该类库严格按照CTS规范实现。

    6.GC是什么

    CLR垃圾回收机制,根据"代"自动回收堆上不被引用的对象

    To be continue...

  • 相关阅读:
    一个简单的禁止鼠标滚轮事件处理
    模仿抽奖转盘,并且用cookie记录历史次数
    学习jquery
    使用var提升变量声明
    Django 自带密码加密,自定密码加密方式 及自定义验证方式
    kindEditor使用并防止xss攻击(day88)
    python二维码生成库(qrcode)简介和实例
    js原型的区别
    js中 this与that
    python单元测试之unittest框架使用总结
  • 原文地址:https://www.cnblogs.com/alex09/p/4434984.html
Copyright © 2020-2023  润新知