在Java或任何其他编程语言中将数据存入内存意味着什么?

时间:2012-08-09 16:10:03

标签: algorithm memory memory-management data-structures

我是一名新手程序员,最近我开始学习算法和DS。我经常在教程和书中看到提及“将数据存入内存”这一术语,如排序,信息检索。虽然我理解将数据存储到数组或HashMap中的过程(如果是IR)但我真的不明白记忆在其中起什么作用?

在这些场景中,有没有人可以引导我了解内存的基础知识,或者为我建议一些相同的教程?

1 个答案:

答案 0 :(得分:3)

在基本级别,计算机只有两件事:

  • 数据
  • 可以对一部分(或多条)数据执行的操作

所有数据都只包含1和0。

但是,这些数据可以存在很多地方,这些数据都可以称为内存。

  • ROM (只读内存:计算机启动的内存,以便能够与主板和内容进行交互。)

  • 硬盘(关闭计算机时,保存在硬盘上的数据不会丢失。操作系统,个人文件等)

  • RAM (随机存取内存:应用程序可以快速读写RAM,但重启计算机时数据会消失.HashTables,Objects,程序处理的数据存储在这里。)

  • 缓存(存在各种级别的缓存。经常访问的RAM内存部分被复制到缓存内存,因此应用程序可以更快地访问/修改该数据。修改后的数据将被移动回到RAM,从RAM可以保存到硬盘上。

  • 外部内存(互联网连接或其他连接可能会为您提供更多可存储数据的位置,但访问该内存的时间会更长)。

当“内存”以“将数据存入内存”的形式使用时,例如在教程或书籍中,它们通常意味着将数据从硬盘存储器中取出到RAM存储器中。

这是因为计算机执行的操作只能对存储在RAM中的数据执行。 (虽然有人肯定会发表评论但有一些例外)。