课件
笔记
1.什么是内存?
内存——内部存储单元,就是计算机程序运行的空间,相对地,外存——扩展存储器,又叫硬盘,是计算机程序不运行时放置的空间。
启动一个软件,实际过程就是从硬盘———(加载数据)———>内存。
2.什么是程序的静态时期,动态时期?
程序不运行时,是其静态时期,也就是 编辑期,编译期。
程序运行时,是其动态时期,也就是 运行期。
所以,根据以上1,2两点,可知:静态程序存储在硬盘里,而动态程序存储在内存中。
3.怎么理解数据型号?
一条数据在内存中所占的空间,称为数据型号
4.浪费内存会导致什么后果?
(1)内存很贵的,浪费内存就是浪费钱
(2)当一个程序所占的内存过多,就会挤占别的程序及操作系统运行的内存空间,导致计算机运行速度变慢;这就是所谓的程序性能差。
5.编程语言分为强类型,弱类型
强类型语言:数据受数据类型约束严格。保证了数据的正确性,完整性,安全性。如C#
弱类型语言:数据受数据类型约束不严格,或根本不受约束。保证了数据的灵活性。如javascript
C#为了模仿动态类型,使数据更具灵活性,定义了 “dynamic”关键字。
6.什么是字节和比特位?
字节(Byte):是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。
比特位:计算机专业术语,是信息量单位,是由英文BIT音译而来。二进制数的一位所包含的信息就是一比特,如二进制数0100就是4比特。
7.关于C#中的 var 关键字
传统定义变量是已经知道变量的类型,如: int a = 1; string b = “qwer”;
用Var类型预先不用知道变量的类型;根据你给变量赋值来判定变量属于什么类型;如
var a =1; 则a是整型,var a = “qwer”;则a是字符型,但使用Var类型要注意:
1:必须在定义时初始化,即不能先定义后初始化,如:var a;a = 1;这样是不允许的
2:一旦初始化完成,不能再给变量赋与初始化不同的变量
3:var类型的变量必须是局部变量
8.数据类型的值可表示最大,最小值范围,示例(intergral types table)
9.程序装载在内存中开始运行后是如何利用内存的?
将内存分为两个区域对待:
(1)栈(stack):函数调用
(2)堆(heap): 存储对象
栈的容量小(因此运行速度快),堆的容量大。如果在栈上分配过多内存,就会出现“栈爆”现象;如果创建了实例却没有赋值给引用变量且忘记回收,就会引起“内存浪费”
栈爆出现的情况:
(1)算法没写好,函数调用太多,如下代码示例:
(2)程序有错,不小心在栈上分配了太多内存
内存浪费
出现在堆中,内存浪费的学名为:内存泄漏。(C#有垃圾收集器,不必手动释放内存)
10.关于Build和Compel
“Compel”:把自己写的代码编译,编译后成为一个程序集(装配件)
这个程序集需与其他程序及组装在一起成为一个程序,这个过程称为“Build"
11.什么是Process?
一个程序从硬盘加载到内存,开始执行后就形成一个进程(Process),即程序正在运行的一个实例。
如何观察程序正在运行时的内存使用?
win + R 打开 Perfmon(performance monitor)——性能监视器。