C#学习day03

1.        程序的结构由哪些部分组成?

命名空间声明(namespace),类(class),成员变量,成员函数(方法),主方法


2.        什么是标识符、什么是关键字?

1)标识符是程序用于命名变量,类,对象等的符号,标识符由数字,字母(分大小写)和下划线组成,标识符不能以数字开头,且不包含空格和特殊字符,关键字不能作为标识符使用(可以以@标记关键字作为标识符使用)

2)关键字是由编程语言预定义的具有特殊意义的保留字,用于执行特殊操作或生成特殊结构。关键字不可作为标标识符使用,与标识符不同,关键字不可随意更改。


3.        什么是命名空间namespace?

为防止系统无法识别相同文件名的文件,故使用不同命名空间前缀来区分同名文件,同java的package。原理可以理解为不同文件夹中的同名文件可共存


4.        构造函数和析构函数的作用?

构造函数用于在创建实例对象时初始化对象,

析构函数用于在对象销毁后释放资源


5.        数据类型有什么作用?分什么整数、小数、对象干嘛,多麻烦?

1)存储和操作数据:数据类型决定了变量可存储的数据类型(整形,小数,字符等),以及可对这些数据进行的操作(加减,比较等)

2)内存管理:不同数据类型占用的内存不同,数据类型有助于优化内存的使用和管理

3)数据验证和类型安全:编译器使用数据类型来验证程序中数据操作是否合法,防止类型错误,提高了程序的类型安全性。

4)提高代码可读性


6.        值类型和引用类型的区别?

值类型变量直接包含其数据,存储于栈上,值类型数据赋值会复制数据生成副本,两个变量是独立的。值类型不需要垃圾回收(GC),其生命周期取决于作用域。

引用类型变量不直接包含其数据,而是存储数据的引用(地址)。存储于堆上,引用类型数据赋值会复制引用,两个变量引用同一个对象。引用类型需要垃圾回收(Garbage Collector),由垃圾回收器管理内存分配和释放。


7.        栈和堆的区别?

栈是一种快速简单的内存分配区域,通常用于存储局部变量和方法调用。

堆是一种用于动态分配内存的区域,主要用于存储对象和数据结构。

1)内存分配和管理:栈由编译器自动管理,采用LIFO(后进先出)原则,内存分配和释放快

堆由程序员或垃圾回收器管理,内存分配和释放相对复杂且速度

2)生命周期:变量的生命周期由其作用域决定,作用域结束自动释放。对象的生命周期由引用计数决定,无引用时由垃圾回收器回收。

3)性能:由于栈简单的内存管理和快速的分配释放,性能较高。而堆需要垃圾回收和动态管理,故性能较低。

4)空间大小:栈的空间较小,适合存储短期的小数据。堆的空间大,适合存储长期存在的大对象和数据结构。


8.        Struct结构体和Object对象的区别?

Struct结构体用于存储简单数据是一种值类型,结构体只存储于栈上,每次创建或复制结构体都会在栈中生成副本,两个结构体独立。Object对象用于存储和处理复杂的数据(可存储任意类型),对象存储于栈(值类型)和堆(引用类型或被装箱的值类型),每次创建对象或复制对象实际上是创建或复制引用(地址),指针存储于堆中,指针指向栈中存储的数据。


9.        什么是隐式类型转换,什么是显式类型转换?

类似int转long,小的数据类型转为大的数据类型时不需要特殊标注可直接进行转换,此时为隐式转换。但反之long转int不行,大的数据类型转为小的数据类型会警告,因为有可能long数据长度会超过int的最大数据长度,但如果程序员确定不会出现溢出的问题就可以使用显示转换例:long a=100  int b=(int)a  使其强制进行转换


10.        可空类型是什么意思?有什么作用?

是C#中的一种特殊数据类型,允许值类型存储“NULL”值,在特殊场景中如缺考有条件筛选作用

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值