2.1.1 变量场景
学习目标
这一节, 我们从 数据存储、变量场景、小结 三个方面来学习。
数据存储
数据存储
所谓的数据存储,我们从三方面来理解这句话:1、数据保存到哪里 -- 各种媒介,CPU、内存、磁盘、磁带、网盘...2、数据保存的效果 -- 完整、安全、有效3、数据保存的单元 -- 存储空间
数据的存储空间默认不是一个整体,而是由一个个的存储单元组成,每一个存储单元都有一个唯一的整数编号,我们称这个编号为:地址存储单元的作用:存储数据+读写数据存储空间大小:1字节(B) = 8bit == 00000000地址特点:十六进制,例如:0x20000000
对于数据的存储来说,主要有两种样式:物理地址和逻辑地址。物理地址:内存或硬盘中真正存储数据的位置,也就是说通过磁盘设备查找的位置逻辑地址:用于查找物理地址的存储块地址叫逻辑地址。程序中用的地址一般都是逻辑地址逻辑地址包括两部分:起始值(十六进制)+偏移量(十六进制)数据表的描述主要是逻辑地址,因为程序一般存储的是逻辑地址。
数据一旦存储下来就不再发生变化了,而程序中可能会在很多场景中用到同一个数据,就会出现两个问题:1 物理地址人听得懂,机器看不懂 - 所以用逻辑地址找物理地址2 软件可以通过逻辑地址找到数据地址,但是软件不懂场景- 所以人用逻辑地址的别名来代指向同一个xx地址应用程序中为了 多场景应用这个逻辑地址的别名,本质上就是“变量”。
变量场景
变量的本质
变量的本质其实就是 通过一个名称帮助程序快速找到内存中具体数据的地址。- 变量说白了就是指向xx值。
编程语言
编程语言在数据调用层面分类的话,可以分为两类:静态编译语言:使用变量前,先声明变量类型,之后类型不能改变,在编译时检查。如:java,c动态编译语言:不用事先声明,可随时改变类型。如:bash,Python
根据编程语言在使用变量的程度上,可以划分为强类型、弱类型语言:强类型语言:不同类型数据操作,必须经过强制转换才同一类型才能运算。如java , c# ,python示例:print('shuji' + 10) 提示出错,不会自动转换类型print('shuji' + str(10)) 结果为magedu10,需要显示转换类型弱类型语言:语言的运行时会隐式做数据类型转换。无须指定类型,默认均为字符型;参与运算会自动进行隐式类型转换;变量无须事先定义可直接调用。如:bash ,php,javascript示例:echo 'aaa'+222
小结