1. 记忆是如何组织的

每台计算机都有内存。它是什么?它有什么特性?而且,最重要的是,它对我们有什么好处?

每个程序(包括用 Java 编写的程序)在执行之前都被加载到主内存中。主内存包含程序代码(由处理器执行)以及程序数据(即程序本身放入内存的数据)。

什么是记忆,它是什么样的?

一个 Exсel 电子表格由单元格组成。每个单元格都有自己的唯一标识符( A1, A2, ... B1, B2)。如果您知道单元格的标识符,那么您总是可以向其中写入一些值或获取存储在那里的任何值。计算机内存的组织方式非常相似。

程序和程序数据在程序运行时存储在内存中。所有计算机内存都由称为字节的小单元组成。每个单元格都有一个与之相关联的唯一标识符或编号:0, 1, 2, 3, ...; (编号从零开始)。如果我们知道一个单元格的编号,我们就可以在其中保存数据。或者从中获取数据。一些单元存储程序的代码,即处理器的一组命令。其他存储程序使用的数据。单元格的编号也称为单元格地址

处理器知道如何执行已加载到内存中的命令。几乎所有的处理器命令都类似于从一些单元格中获取数据对它们进行处理,然后将结果发送到其他单元格

我们组合了数百个简单的命令来获得复杂而有用的命令。

在代码中声明变量时,会为其分配一块尚未使用的内存。这通常是几个字节。声明变量需要您指明程序将存储在其中的信息类型:数字、文本或其他数据。毕竟,如果您不知道要存储的信息类型,那么就不清楚需要为变量分配多大的内存块。

在计算机时代的初期,程序直接使用内存地址,但随后,为了程序员的方便,单元格开始被命名。唯一变量名首先是为了方便程序员,因为程序可以很好地处理普通内存地址。


2.内存中的变量

Java 总共有 4 种用于存储整数的数据类型。这些是byteshortintlong

类型 字节大小 类型名称的来源
byte 1 byte是 bite 的故意反拼,以避免与 bit 混淆
short 2 短整数的缩写
int 4 整数的缩写
long 8 长整数的缩写

此外,Java 有两种实数类型:float 和 double:

类型 字节大小 类型名称的来源
float 4 浮点数的缩写
double 8 Double Float的缩写

每次程序执行到创建变量的命令时,都会为其分配一小块内存(大小取决于变量的类型)。

变量的地址是分配的内存块的第一个单元格的地址。

Java 程序不允许直接访问内存。所有与内存有关的工作都只能通过 Java 虚拟机进行。


3.String内存中的类型

String类型可以存储大量数据,这意味着它不仅仅是一种数据类型,而是一个成熟的类。

对象String被放置在分配的内存块中,该内存块存储存储文本的另一个内存块的地址。

变量int a占用4字节并存储值1

变量int b占用4字节并存储值10,555。我们使用逗号作为千位分隔符。我们使用句点作为小数点分隔符。

变量double d占用8字节并存储值13.001

String str变量占用4字节并存储值G13,该值是包含文本的内存块的第一个单元格的地址。

的文本String object存储在单独的内存块中。它的第一个单元格的地址存储在str变量中。


4.编程中为什么编号从零开始

人们常常想知道为什么程序员几乎总是从零开始计数。好吧,事实是有很多情况从零开始计数更方便(当然也有从 开始计数更方便的情况1)。

最简单的例子是内存寻址。如果你的变量已经分配了4内存字节并且你知道这X是第一个字节的地址,那么每个字节的地址是什么?,,, . _ _ 就这么简单,我们有一组字节可以通过索引, , ,访问。X+0X+1X+2X+30123

当我们考虑数据块中的相对地址时,从零开始索引是有意义的。这是从零开始计数的主要原因。