java基础学习 day20(数组)

1. 数组:指一种容器,可以用来存储同种数据类型的多个值。(不同种也可以,只要支持隐式类型转换即可)

  • 建议:保持容器类型和存储的数据类型一致即可。

2. 数组的定义

  • 之前说的定义一个变量a  int a = 0;其实是包含两部分,int a 表示定义一个a变量,而= 0表示赋值。
  • 对于定义一个数组,也是如此。例:
    格式一:数据类型[ ] 数组名
    范例:int[ ] array
    格式二:数据类型 数组名[ ]
    范例:int array[ ]
  • 数组定义后,只是有个数组名字,存储数据的容器还没有出现。所以数组定义后,只能用数组名指向其他数组(其他创建好的容器),即 array1 = array2,不能对数组内的元素进行赋值,即不能 array [ 1 ] = 2

3. 数组的初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。

  • 静态初始化:

完整格式:数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3…};

范例:int[ ] array = new int[ ]{11,22,33};

简化格式:数据类型[ ] 数组名 = {元素1,元素2,元素3…};

范例:double[ ] array2 = {11.1,22.2,33.3};

  • 数组初始化完毕后,数组的长度不会发生变化。
    在这里插入图片描述
    例如array数组的长度就固定为3了。

4. 数组的地址值:表示数组在内存中的位置

  • 直接打印数组名,打印的是数组的地址值,如图:
    在这里插入图片描述
  • 扩展:地址值的格式含义[D@776ec8df
    [:表示当前是一个数组
    D:表示当前数组里面的元素都是double类型的
    @:表示一个间隔符号(固定格式)
    776ec8df:才是真正的地址值(十六进制)
    但我们习惯把[D@776ec8df 这个整体叫做数组的地址值。

5. 数组元素访问

  • 格式:数组名[索引]
  • 索引:也叫作下标,角标
  • 索引的特点:从0开始,逐个+1增长,连续不间断。
  • 可以用作获取数组里面的元素,也可以把数据存储到数组元素中。

6. 数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断…)

  • 注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印
  • 在java中,数组有一个长度属性:length,它的调用方式为:数组名.length
  • 数组的最大索引(最大下标)为数组长度 - 1
  • 扩展:idea提供自动的快速生成数组的遍历方式:
    数组名.fori
  • 如果要修改数组里的每一个元素,再遍历打印,尽量用两次循环来完成。因为,一个循环里最好只做一件事,多了就容易把思路弄混。

7. 数组的动态初始化

  • 格式:数据类型[ ] 数组名 = new 数据类型[数组长度];
  • 在创建的时候,由我们自己指定数组的长度,由虚拟机给出默认的初始化值
  • 数组的默认初始化值的规律
    a. 整数类型数组:默认初始化值为 0
    b. 小数类型数组:默认初始化值为 0.0
    c. 字符类型数组:默认初始化值为 ‘\u0000’ 打印出来是一个空格
    d. 布尔类型数组:默认初始化值为 false
    e. 引用数据类型数组:默认初始化值为 null(字符串为引用数据类型)

8. 数组动态初始化和静态初始化的区别

  • 动态初始化:手动指定数组长度,由系统给出默认初始化值。
  • 动态初始化的使用情况:只明确元素个数,不明确具体数值。
  • 静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度
  • 静态初始化使用情况:需求中已经明确了要操作的具体数值。

9. 数组常见的问题

  • 索引越界异常
    原因:访问了不存在的索引
    避免:注意索引的范围。
    最小索引:0  最大索引:数组的长度-1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值