给数组分配的是连续的内存单元

  1. 整型数组
  2. 字符串数组

在内存中给数组分配的存储单元是连续的。

我们是如何访问数组里的任意一个元素呢?
要访问一个元素,就是需要知道该元素在内存中的地址。因为给数组分配的存储单元是连续的,通过数组的引用和数组下标,我们可以推算出每个数组元素在内存中的地址,从而实现访问数组里的任意元素。

数组的引用: 数组在内存中的起始地址,也就是数组第一个元素的地址。

整型数组

以创建一个整型数组为例,执行 ns = new int[] { 68, 79, 91, 85, 62 } ,在内存中分配的是连续的存储单元,也就是数组元素的内存地址是连续的。

     ns

      │
      ▼
┌───┬───┬───┬───┬───┬───┬───┐
│   │68 │79 │91 │85 │62 │   │
└───┴───┴───┴───┴───┴───┴───┘

字符串数组

以创建一个字符串数组为例,String[] names = {"ABC", "XYZ", "zoo"} ,字符串数组存储的不是字符串本身,而是字符串的引用。如下所示,数组元素是3个引用,在内存中分配连续的存储单元来存储数组元素。

Java语言中,用数据来保存另外一块内存的的起始地址,那么我们就称这个数据为引用。如下案例中,在连续的内存单元中保存了3个引用,这三个引用保存的内存地址表示指向三个不同的字符串。

          ┌─────────────────────────┐
    names │   ┌─────────────────────┼───────────┐
      │   │   │                     │           │
      ▼   │   │                     ▼           ▼
┌───┬───┬─┴─┬─┴─┬───┬───────┬───┬───────┬───┬───────┬───┐
│   │░░░│░░░│░░░│   │ "ABC" │   │ "XYZ" │   │ "zoo" │   │
└───┴─┬─┴───┴───┴───┴───────┴───┴───────┴───┴───────┴───┘
      │                 ▲
      └─────────────────┘

他の者にできたか?ここまでやれたか?この先できるか?いいや、仆にしかできない!

目录
×

喜欢就点赞,疼爱就打赏