1.C#的基本数据类型:
C#基本数据类型包括13种值类型和2种引用类型;13种值类型有8种整数型:sbyte(8位)、byte(8位)、short(16位)、ushort(16位)、int(32位)、uint(32位)、long(64位)、ulong(64位),2种浮点型:float(32位)、double(64位),十进制浮点型decimal(128位),字符char,布尔类型bool。2种引用类型有String、 。
C#值类型和引用类型分别包括:值类型包括简单类型、枚举、结构体;引用类型包括String、 、类、接口、数组、委托
值类型与引用类型的区别:
1.值类型存储在内存的栈上面,引用类型存储到内存的托管堆上。
2.值类型的变量存储的是变量的值,引用类型的变量存储的是地址的引用。
3.值类型默认构造器初始化为0,引用类型默认初始化为null。
4.继承,值类型不能派生出其他类型,所有的值类型均派生自System.ValueType,但引用类型可以继承,如类、接口、委托
值类型和引用类型的生命周期:
值类型的生命周期随作用域结束被释放,引用类型受垃圾回收器控制;
2.class和struct
class是引用类型,struct是值类型;struct不支持无参构造函数,不支持析构函数,并且不能有protected修饰符;class需要new关键字实例化对象,结构可以不用new关键字;class可以为抽象类,struct不支持抽象。
3.抽象类和接口
1.继承:接口支持多继承,抽象类只能单继承。
2.含义:接口用于规范,强调契约;抽象类用于共性,强调父子。
3.方法实现:抽象类中的方法,既可以给出实现,也可以不给出实现,抽象类的抽象方法只能声明不能实
现,接口中的方法不能给出实现。
4.子类重写,继承类对于抽象类定义的抽象方法,可以不用重写,但继承类必须也为抽象,而对于接口所定
义的方法和属性,继承类必须重写,给出相应的方法和属性实现
4.stack和heap的区别
线程堆栈:简称栈 stack;托管堆:简称堆 heap
栈是CPU资源分配和调用的单位,堆是系统资源分配和调用的单位;
值类型分配在栈上,引用类型分配到堆上;
栈是基于线程的,每个线程都有自己的线程栈,初始大小为1M;堆是基于进程的,一个进程分配一个堆,堆的大小受GC根据运行情况动态控制。
5.装箱与拆箱
装箱就是值类型转换成引用类型,拆箱就是引用类型转换为值类型
6.垃圾回收器GC
GC:Garbage Collector,以应用程序的root为基础,遍历应用程序在heap上动态分配的所有对象,通过识别他们是否被引用来确定哪些对象资源可以被释放。
托管资源和非托管资源
继续阅读与本文标签相同的文章
-
字节跳动要做一款24小时在家陪读的AI教练,原锤子团队参与研发
2026-05-18栏目: 教程
-
全能扫描工具,支持OCR文字识别,全平台
2026-05-18栏目: 教程
-
区块链国家队来了!国家信息中心与银联等联合发布区块链服务网
2026-05-18栏目: 教程
-
什么是企业部署物联网的重点?
2026-05-18栏目: 教程
-
法大大创始人兼CEO黄翔:中国电子签名市场渗透率不到1% 复合增长率可达200%
2026-05-18栏目: 教程
