数据结构——内存(RAM)

简介: 在计算机硬件上我们学习了内存的概念,那在软件上是如何实现存储的呢?数据结构很多时候都和内存有关,不理解对后面很多的概念会很模糊。笔者写的文章将陪伴各位数据结构的学习。不存在先后的关系,不拘泥于语言,希望各位可以拓展出更多的内容,后面会考虑出算法,继续加油,越来越强。

前言

在计算机硬件上我们学习了内存的概念,那在软件上是如何实现存储的呢?数据结构很多时候都和内存有关,不理解对后面很多的概念会很模糊。笔者写的文章将陪伴各位数据结构的学习。不存在先后的关系,不拘泥于语言,希望各位可以拓展出更多的内容,后面会考虑出算法,继续加油,越来越强。

内存和内存条的用途

image-20230126173852066.png
在买手机和买电脑时我们经常会看到8+128、12+256GB,这是什么意思呢?那8和12就是运行内存。在电脑上我们叫内存条,电脑上的内存条就是管运行内存的。

当我们打开任务管理器时:

image-20230126174352376.png
可以发现所有的程序都会占内存。
image-20230126174425190.png
运行内存:即决定了前台和后台能运行多少个APP,能运行多少个程序

一旦内存占满,内存不够用了,就不能再打开应用了。就像是一个垃圾桶装满垃圾,想要继续装东西,就得清内存,我们手机经常清理后台就是这个操作。

那内存是如何保存不同数据类型的

常识:一个8bit(位)=1byte

在不同的编程语言中,int类型会占4个或8个字节,计算机只能识别2进制,我们来模拟这个过程。

可以将内存想像成有边界的网,内存的容量是有限的,一个字节占一个格子。
image-20230126184052169.png

我们往里存入数字1,怎么存储呢?
image-20230126184253788.png

这样就把1存储进去了,必须是连续的,中间如果有2和3是被占掉了,就需要找别的空间。

如果是char类型怎么办呢?有个叫ASCII码的东西,将字符A转换成二进制数存入内存。

有一句神句送给各位,有四个病人要住院(内存就是住院部),并且这四个病人要求连号。

住院部越大,容纳的病人就越多。

于是就有back to back概念 并且是连续的存储空间

int类型的范围是如何计算的?

在C/C++中int类型的范围取决于机器的字长,(字长)计算机处理能够最大的位数,在32位的机器中,2^32所占的范围可能就是-2147483648——2147483647,(32来自与4位字节和8个bit)很搞笑的是python中int类型可以存储无限的字节,所以在数据结构中我们不能拘泥于语言。这也是很多初学者的误区。

后记

在本节的学习中,希望各位理解概念,对后面的学习会大有裨益。无论是考研和学习数据结构来说。

目录
相关文章
|
7月前
|
存储 Go iOS开发
掌握Go语言:探索Go语言指针,解锁高效内存操作与动态数据结构的奥秘(19)
掌握Go语言:探索Go语言指针,解锁高效内存操作与动态数据结构的奥秘(19)
|
编译器 程序员 测试技术
详解动态内存管理【malloc/calloc/realloc/free函数/柔性数组】【C语言/进阶/数据结构基础】
详解动态内存管理【malloc/calloc/realloc/free函数/柔性数组】【C语言/进阶/数据结构基础】
211 0
|
24天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
56 1
|
1月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
49 6
|
7月前
|
存储 内存技术
内存条RAM详细指南
内存条(RAM)是电脑中用于临时存储数据和程序的部件,CPU依赖它执行操作。内存条经历了从主内存扩展到读写内存整体的发展,常见类型包括SDRAM和DDR SDRAM。内存容量、存取时间和奇偶校验是衡量其性能的关键指标。在选购时,应考虑类型、容量、速度和品牌,知名品牌的内存条提供更好的可靠性和稳定性。
244 2
|
7月前
|
存储 监控 NoSQL
Redis处理大量数据主要依赖于其内存存储结构、高效的数据结构和算法,以及一系列的优化策略
【5月更文挑战第15天】Redis处理大量数据依赖内存存储、高效数据结构和优化策略。选择合适的数据结构、利用批量操作减少网络开销、控制批量大小、使用Redis Cluster进行分布式存储、优化内存使用及监控调优是关键。通过这些方法,Redis能有效处理大量数据并保持高性能。
101 1
|
4月前
|
安全
计算机硬件升级增加内存(RAM)
【8月更文挑战第5天】
126 3
|
6月前
|
存储 编译器 C语言
C语言的联合体:一种节省内存的数据结构
C语言的联合体:一种节省内存的数据结构
|
7月前
|
存储 NoSQL 算法
Redis源码、面试指南(2)内存编码数据结构(下)
Redis源码、面试指南(2)内存编码数据结构
65 4
|
7月前
|
存储 NoSQL API
Redis源码、面试指南(2)内存编码数据结构(上)
Redis源码、面试指南(2)内存编码数据结构
74 0