程序之存储篇1

程序=数据结构+算法

刚入门的时候就听说这么一句简单的话,数据结构+算法=程序,这也就很好的解释了什么叫做程序。接下来的文章将始终围绕着这个话题讨论。

我们先来思考一个问题,程序数据可以存放在上面地方?

硬件介质,发散一下思维,罗列如下,

1,cup内部的寄存器  2,内存   3,磁盘  4,其他很多

逻辑存储

1,基本类型变量  2,数组 3,链表 4,map等各种集合 5,内存数据库 ,6关系型数据库  7,nosql数据库

现在来回顾一下最简单的计算机结构,冯洛伊曼老爷子提出来的计算机模型,包括输入输出,cpu处理器,主存。就是这么简单。

cup具有计算和控制能力,内存具有保存中间结果和程序指令的功能,二者密切配合,cup就是加工厂,内存就是仓库。仓库堆放原始生产资料和成品。

未完待续........................

原文地址:https://www.cnblogs.com/xiaokaige/p/10739670.html

时间: 2024-10-10 02:31:34

程序之存储篇1的相关文章

进程篇(2: C程序的存储空间布局)--请参照本博客“操作系统”专栏

1.  C程序的存储空间布局: C 程序由下面几个部分组成: 正文段(即是代码段): 这是由CPU执行的机器指令部分.通常,正文段是可以共享的,并常常是可读的,以防止程序因为意外原因而修改自身的代码! 初始化数据段(即数据段): 它包含了程序中需要明确的赋初值的变量. 非初始化数据段(bss段):在程序开始执行之前,内核将此段中的数据初始化为0或空指针. 栈.自动变量以及每次函数调用时所需保存的信息都存放在此段中.每次调用函数时,返回地址以及调用者的环境信息(如某些寄存器的值)都存放在栈中.然后

黑马程序员——IO篇

------- android培训.java培训.期待与您交流! ---------- IO(Input Output)流 1.IO流用来处理设备之间的数据传输 2.Java对数据的操作是通过流的方式 3.Java用于操作流的对象都在IO包中 4.流按操作数据分为两种:字节流与字符流 . 字符流的数据字节流其实都能处理,因为无论什么在计算机上最后都是以字节存在的,但是其中有一部分数据它是以文本形式存在的,所以为了方便有了字符流,字符流里融合了编码表,而只有文字用到了编码表,所以字符流用来处理文本

黑马程序员——集合篇

------- android培训.java培训.期待与您交流! ---------- 1.集合类 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一 种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 集合类的特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 2.集合框架的构成及分类 3.

C# 程序性能提升篇-1、装箱和拆箱,枚举的ToString浅析

前景提要: 编写程序时,也许你不经意间,就不知不觉的使程序代码,发生了装箱和拆箱,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候,减少装箱和拆箱,是优化程序提高效率的一种途径.不仅跬步,无以至千里,不积小流,无以至江河.优化从点点滴滴做起. 一.装箱拆箱概念: 这里是官方定义:http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx 装箱:值类型→引用类型 拆箱:引用类型→值类型 二.为什

android之存储篇——SQLite数据库

转载:android之存储篇_SQLite数据库_让你彻底学会SQLite的使用 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么. 例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值. 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误. 另外, SQLite 在解析CREATE TABLE 语句时

Redis系列-存储篇string主要操作命令

Redis系列-存储篇string主要操作命令 通过上两篇的介绍,我们的redis服务器基本跑起来.db都具有最基本的CRUD功能,我们沿着这个脉络,开始学习redis丰富的数据结构之旅,当然先从最简单且常用的string开始. 1.新增 a)set 语法:set key value 解释:把值value赋给key,如果key不存在,新增:否则,更新 [[email protected] ~]# redis-cli redis 127.0.0.1:6379> set user.1.name zh

Linux环境编程之进程(二):程序的存储空间布局

引言: 一个写好的程序一般要存放在存储器中,那么程序中的代码.数据等各部分,是如何有规律的存放在存储器中的呢? (一) 一个存储的程序可分为五部分:正文段.初始化数据段.非初始化数据段.栈.堆.其典型的存储安排如下图: 正文段:这是由CPU执行的机器指令的部分.通常,正文段是可共享的,所以即使是频繁执行的程序在存储器中也只需要一个副本,另外正文段常常是只读的,以防止程序由于意外而修改其自身的指令. 初始化数据段:通常称为数据段,它包含了程序中需要明确地赋初值的变量. 非初始化数据段:通常称为bs

MFC程序逆向 – 消息篇(上)

标 题: [原创]MFC程序逆向 – 消息篇(上)+(下) 11楼作 者: szdbg时 间: 2007-10-31,06:26:02链 接: http://bbs.pediy.com/showthread.php?t=54150 前言:记得前一段时间,我刚接触软件破解和逆向这一行时,对于一些软件不知从何处跟踪按钮消息,试了好多方法,就是断不下来,在系统模块中经常转得晕头转向,而一无所获. MFC程序是一种常见类型的程序,我静下心来,潜心研究了一下MFC消息流程.弄清原委之后,一切豁然开朗,发现

黑马程序员——正则表达式篇

------- android培训.java培训.期待与您交流! ---------- 正则表达式:符合一定规则的表达式. 作用:用于专门操作字符串. 特点:用一些特定的符合来表示一些代码操作,这样就简化书写. 所以学习正则表达式,就是在学习一些特殊符号的使用. 好处:可以简化对字符串的复杂操作. 弊端:符合定义越多,正则表达式越长,阅读性越差. 具体操作功能: 1,匹配:String matches(regex);用规则匹配整改字符串,只要有一处不符合规则,就匹配结束,返回false 2,切割