Java 数组

零、复习昨日

经验:当循环次数已知用for最合适,当循环次数未知用while最合适。

一、 数组(array)

1.1 为什么需要数组

考虑问题:存储一个人的考试成绩,double score = 100;

存储60个人的成绩,???? 数组更合适

1.2 数组是什么

数组相对于是容器,可以转载(存储)多个数据。

特点:
数组一旦创建,容量(长度)固定
数组一旦创建,存储的数据类型固定
内存空间的特点:程序在jvm中运行,Java程序运行需要考费电脑内存空间。
数组的内存空间特点:
是在堆中创建;
是连续空间;
每个空间有下标(索引);

1.3 数组的使用

数组使用:声明;创建;存取数据

整型数组,默认存储0
浮点型数组,默认存储0.0
字符数组,默认存储 ‘ ’(空格)
布尔型数组,默认存储false
String数组,默认存储null

1.3.1 数组声明

数据类型[] 数组名;

1.3.2 数组创建

数组名 = 数据类型[长度];

arr = int[3];

1.3.3 使用数组

使用数组就只会存取;

取值:数组类型 变量 = 数组名[下标];
下标0~下标-1;接收的变量的类型和数组类型一致。
存值:数组名[下标] = 值;
数组的细节总结:
  1. 数组中的每⼀个数据称之为数组元素

  1. 数组中的每⼀个元素都对应有⼀个下标

  1. 数组中的下标范围0~数组的长度-1

  1. 数组的长度通过数组名.length获取

  1. 数组的长度如果超出的边界会报错(ArrayIndexOutOfBoundsException数组下标越界异常)

1.4 数组的内存图

方法执行会进栈
凡是 new 的,都会在堆中开辟空间
new int[3];这行代码做了什么?
会在推重开辟连续空间
且给控件设置下标,0~长度-1
且给每个空间赋默认初始值
给每个控件设置了内存地址
int[] arr = new int[3];赋值给arr的是什么? arr其实是数组在内存的地址。
System.out.print(arr);// 输出内存地址
int a = arr[0];  这行代码做了什么?
1. 通过arr,arr本后是数组的地址,即通过地址找到数组
2. arr[0],找到数组中下标为0的那个准确位置
3. 将值取出赋值给前面的变量a
arr[0] = 11; // 这行代码干了啥?
1. 通过arr背后的地址找到数组
2. 通过[0] 找到对应下标位置
3. = 11,给这个位置直接覆盖值为11
4. 以后这个位置就是11,除非再次修改

1.5 数组的静态初始化

之前使用 int[] arr = new int[3];
何为动态?这样创建出的数组,只是默认值,会随着程序运行,动态赋值。即向指定长度,后来再赋值
静态初始化,就是提前确定(提前指定)数据,不指定长度。这样就是静态初始化。
int[] arr = new int[]{44,55,66} ;
静态初始化是指定数据,不指定长度,长度会自动计算(有length属性)
静态初始化的简化格式;
数据类型[] 数组名 = {值1,值2,值3……}
int[] arr = {1,2,3,4,5,6};

1.6 数组的遍历

遍历:一个一个地找到数组的元素

二、 总结

数组:声明;创建;使用
创建:
长度一致就使用动态创建
数据已知就是用静态创建
使用:存值、取值
重点:数组的内存图会画;遍历

单词

reverse:颠倒;反转;
thread:线程;
ArrayIndexOutOfBoundsException:数组下标越界异常;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值