java基础知识part4之数组(不死神兔)

1.数组:存储同一种数据类型的多个元素的容器
定义格式:
A:数据类型[ ] 数组名;(推荐的使用方式)
B:数据类型 数组名[ ];
这两种格式都一样

举例:
int [ ] arr ; 定义了一个int类型的数组,数组名是arr;
int arr[ ] ; 定义了一个int类型的变量,变量名是arr数组

2.数组的初始化:
A:所谓的初始化,其实就是为数组开辟内存空间,并为数组中的每个元素赋予初始值。
B:对数组初始化的两种方式
a:动态初始化 只给出长度,由系统给出初始值
b:静态初始化 给出初始化值,有系统决定长度

动态初始化:
数组类型[ ] 数组名 = new 数组类型[数据长度];

  • 左边:
    int:说明数组中的元素的数据类型是int类型
    [ ]:说明这是一个数组
    arr:是数组的名称

  • 右边:
    new:为数组分配内存空间
    int:说明数组中的元素的数据类型是int类型
    []:说明这是一个数组
    3:数组的长度,其实就是数组中的元素个数

3.获取数组中的元素:
通过输出数组名,得到的是一个地址值
格式:数组名[索引]

4.java的内存分配:
栈:(存储的是局部变量)先入后出,后入先出
堆:(存储的是new出来的东西)
方法区:(面向对象部分讲解)
本地方法区:(和系统相关)
寄存器:(给CPU使用的)

栈:
存储的是局部变量(如:int[ ] arr)
局部变量就是定义在方法中的变量
使用完毕,立即回收

堆:存储的就是new出来的东西,实体,对象。
A:每一个对象都有地址值
B:每一个对象的数据都有默认值
byte,short,int,long 0
float,double 0.0
char ‘\u0000’
boolean false
引用类型 null
C:数据使用完毕后,会在垃圾回收器空闲的时候被回收
在这里插入图片描述

5.一个数组的内存图
在这里插入图片描述

6.两个数组的内存图
在这里插入图片描述

7.两个数组指向同一个堆内存的内存图
如果两个数组拿的是同一个堆内存的地址,任何一个数组对堆内存的数据进行了修改,另一个访问到的也是修改过的。
在这里插入图片描述

8.数组初始化的静态初始化:给出数组中的元素值,有系统决定数组长度
格式:数据类型[ ]数组名 = new 数据类型[ ]{元素1,元素2,元素3,。。。。};
简化格式:数据类型[ ]数组名 = {元素1,元素2,元素3,。。。。}
在这里插入图片描述

9.数组操作的两个常见小问题
a:访问了不存在的索引,造成数组索引越界异常(ArrayIndexOutOfBoundsException)
(引用数据类型:类,接口,数组)
(常量:null,它是可以赋值给引用数据类型的,表示该引用不再指向堆内存的数据)
b:空指针异常
例如:arr = null;
System.out.println(arr[1]);
控制台报错:空指针异常:NullPointerException
tupian1.6

10遍历数组:
length:用于获得数组中的元素个数
格式:数组名.length
数组遍历的标准版代码:
图片1.7

11数组操作之获取最值
寻找参照物进行比较
图片1.8

12.数组练习之评委打分
鱼片1.9

1.3数组练习之不死神兔
分析:2.0
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值