Java 学习之路(二十)- 认识数组和变量

重新认识基本类型的变量

一个简单的使用变量的程序。

变量的基本逻辑:有定才有变。在人看来,固定的是名字,变化的是名字对应的值。对计算机来说,固定的是地址,变化的是值。

理解计算机如何使用内存,完成变量的功能

  • 内存就是一堆白纸,只能通过页码编号访问,也就是所谓的内存地址。
  • 变量就是使用一个固定的地址加上这个地址对应的内存。计算机通过地址,读写地址对应的内存的值。完成变量的赋值和访问值的功能。就好像可以根据页码编号,在指定的白纸上写字,或者擦掉再复写。
  • 变量的名就是地址,变量的实就是地址的内存的值。

认识数组 —— 名与实

理解数组的名与实

  • 数组的“实”是一块地址连续的内存,就像是编号连续的一沓白纸。
  • 数组的名,就是这个块连续内存的第一个内存的地址。
  • 数组的变量和基本变量一样,本身是个地址。但是与基本变量不一样的是,这个地址的值,是数组的“名”,也就是数组的第一个地址。

数组=数组变量+数组的实体

  • 数组变量[索引] 就是在数组原有地址的基础上,加上索引,获得想要的元素
  • 所以索引是从 0 开始的,因为数组变量的地址就是数组第一个元素的地址
int size = 60;
double[] array = new double[size];

for (int i = 0; i < 10; i++) {
    
    
    int index = (int) (Math.random() * size * 3);
    if (index < array.length) {
    
    
        System.out.println(array[index]);
    } else {
    
    
        System.out.println("数组出界!");
    }
}

数组的长度

  • 使用数组的长度
  • 数组变量.ength可以获得数组的长度数组创建之后,长度不可以改变

数组索引过界和初始值

  • 访问数组过界出错的例子,数组出界的错误叫做 IndexOutOfBoundException 。
  • 如果没有把握数组是否会出界,可以把索引和数组长度做比较。注意索引是从 0 开始的,不是从1开始的。
  • 数组里每个元素的都有初始值,初始值和类型有关。对于数字类型,初始值是0,对于 boolean 类型,初始值是 false。

让变量指向新的数组

  • 数组变量可以指向新的数组实体。这时候,数组变量的值就是新的数组实体的地址了。这种数组变量的赋值操作,叫做让变量指向新的数组.
  • 如果没有别的数组变量指向原来数组实体,也就是说,如果没有数组变量“记得”原来数组的地址,原来的数组实体就再也不可访问了,也就好像“消失”了。
  • 对于非基本类型的变量,计算机都要通过这种“两级跳”的方式来访问。基本类型变量,一跳就可以。

猜你喜欢

转载自blog.csdn.net/Kevinblant/article/details/119722059