郝斌c大纲对内存的解释

内存

一、内存的基础概念

1、内存是用来存储数据的设备。它的存储速度介于寄存器和硬盘之间。

2、内存是CPU唯一可以访问的大容量的存储设备!所有硬盘中的程序和数据必须调入内存之后方可被CPU执行!切记:CPU不能直接处理硬盘中的数据!

3、内存的问题是软件开发中最核心的问题之一!如:内存的分配,内存的释放,内存什么时候分配,内存什么时候释放,由谁来分配,由谁来释放,分配在什么地方,访问权限如何!

4、内存是多字节组成的线性一维存储空间。

5、内存的基本划分单位是字节。

6、每个字节含有8位。每一位存放1个0或1个1。

7、字节和编号是一一对应的。每个字节都有一个唯一确定的编号,一个编号对应一个字节!这个编号也叫地址。

8、一个系统所能管理的内存空间的大小取决于参与编号的二进制位数。

如:DOS系统20位寻址方案 可控制2的20次方B 即1MB的内存。

386/486系统采用3字节编制,可寻址2的24次方M 即16M的内存。

奔腾寻址空间32位,其有效寻址空间为2的32次M 即4GB。

二、软件运行与内存关系(垃圾数据)

内存是在操作系统的统一管理下使用的!

1、软件在运行前需要向操作系统申请存储空间,在内存空闲空间足够时,操作系统讲分配一段内存空间并将外存中软件拷贝一份存入该内存空间中,并启动该软件的运行。

2、在软件运行期间,该软件所占用内存空间不再分配给其他软件。

3、当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间遗留下来的数据),以便再次分配给其他软件使用。

综上所述,一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称为垃圾数据。所以通常情况下我们为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化!

时间: 2024-10-24 03:15:41

郝斌c大纲对内存的解释的相关文章

谢谢,郝斌老师;再见,郝斌老师。

现在是一名大一学生,在一所还算理想的大学里,有时上进,更多还是浑浑噩噩的过去了. 看郝斌老师的课让我想起了最开心的初中时光.努力教学的老师,一帮有打有闹的同学,虽然当时我实在非常叛逆,(我初中属于那种老师眼里的刺头),但我很喜欢那种同学之间有说有笑,相互打闹,在教室里面追逐的感觉.老师始终都是严厉的管教者,呵斥之下满满的都是让我们能感觉到的爱意.就在这种随时都有可能引爆老师的氛围之下我却悠然自得很是享受. 听郝斌老师的课让我仿佛又重新回到了那个时光,我又重新拥有了那样的同学与老师,当然老师的讲课

mapreduce on yarn简单内存分配解释

关于mapreduce程序运行在yarn上时内存的分配一直是一个让我蒙圈的事情,单独查任何一个资料都不能很好的理解透彻.于是,最近查了大量的资料,综合各种解释,终于理解到了一个比较清晰的程度,在这里将理解的东西做一个简单的记录,以备忘却.首先,先将关于mapreduce和yarn关于内存分配的参数粘贴上:yarn.scheduler.minimum-allocation-mbyarn.scheduler.maximum-allocation-mbyarn.nodemanager.resource

JVM中各内存区域解释,以及变量的作用域解释

转载自:http://blog.csdn.net/zz87250976/article/details/42875301 JVM内存分四种:1.栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源:2.堆区(heapsegment)—一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指向这个对象就回收:3.静态区(datasegment)—存放全局变量,静态变量和字符串常

C语言-郝斌笔记-002病毒程序示范

病毒程序示范 1 /* 2 龌龊的程序! 3 */ 4 # include <stdio.h> 5 # include <windows.h> 6 # include <malloc.h> 7 #include<cstdlib> 8 9 int main(void) 10 { 11 int c; 12 int i; 13 int j; 14 15 Nihao: 16 printf("1:死机\n"); 17 printf("2:

数据结构笔记(郝斌主讲)(2015-11-8 00:57:45更新)

教材-课外书籍推荐 高一凡(伪算法→真代码) 数据结构概述 定义  我们如何把现实生活中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法 数据结构 = 个体 + 个体的关系  算法 = 对存储数据的操作 算法  解题的方法和步骤 衡量算法的标准   1.时间复杂度    大概程序要执行的次数,而非执行的时间    2.空间复杂度    算法执行过程中

数据结构笔记(郝斌主讲)(9月21日更新)

教材-课外书籍推荐 高一凡(伪算法→真代码) 数据结构概述 定义  我们如何把现实生活中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法 数据结构 = 个体 + 个体的关系  算法 = 对存储数据的操作 算法  解题的方法和步骤 衡量算法的标准   1.时间复杂度    大概程序要执行的次数,而非执行的时间    2.空间复杂度    算法执行过程中

(郝斌讲学)数据结构学习篇(七)---树

树定义        专业定义:有且只有一个称为根的节点,有若干个互不相交的子树,这些子树的本身也是一棵树.        通俗的定义:树是由节点和边组成:每个节点只有一个父节点但可以有多个子节点:但有一个节点例外,该节点没有父节点,此节点称为根节点.   专业术语        节点 父节点 子节点 子孙 堂兄弟 深度 深度:从根节点到底层节点的层数称之为深度.根节点是第一层. 叶子节点:没有子节点的节点. 非终端节点:实际上就是非叶子节点. 度:子节点的个数称之为度.   树的分类     

郝斌数据结构连续存储数组的算法演示

#include<stdio.h> #include<stdbool.h> #include<stdlib.h> //包含了exit函数 //定义了一个数据类型 struct Arr { int * pBase;//存储的是数组第一个元素的地址 int len;//数组所能容纳 的最大元素的个数 int cnt;//当前数组有效元素的个数 }; void init_arr(struct Arr *, int); bool append_arr(struct Arr *

郝斌 SqlServer2005 学习笔记

1.0 什么是数据库 狭义:存储数据的仓库. 广义:可以对数据进行存储和管理的软件以及数据本身统称为数据库. 另外一种说法:数据库是由表.关系.操作组成. 2.0 为什么要学习数据库 几乎所有的应用软件的后台都需要数据库. 数据库存储数据占用的空间小,容易持久化. 存储比较安全. 容易维护和升级. 数据移植比较容易. 简化对数据的操作. 3.0 数据结构和数据库的区别 数据结构是在系统软件级别研究数据的存储和操作.(内存) 数据库是在应用软件级别研究数据的存储和操作.(外部存储) 4.0 数据库