day05

数组定义和访问
1.1容器概述
容器:是将多个数据存储到一起,每个数据称为该容器的元素。
生活中的容器:水杯,衣柜,教室
1.2数组概念
数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型必须要一致。
数组一旦创建长度不变。通过编号来操作。
1.3 数组的定义
格式:
1、数组的动态初始化:数组存储的数据类型[] 数组名 = new 数组存储的数据类型[长度]
A、由我们指定长度。
B、等号两边数据类型必须一样。
C、长度必须大于零。
2、数组的静态初始化:(标准形式):数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
A、内容由我们制定,长度由系统制定
3、数组的静态初始化:(省略格式):数据类型[] 数组名 = {元素1,元素2,元素3…};
A、内容由我们制定,长度由系统制定
B、简化格式
注意:数组有定长特性,长度一旦指定,不可更改。
1.4 数组的访问
索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引 (index):可以通过数组的索引访问到数组中的元素。
格式:数组名[索引编号]
数组的长度属性: 每个数组都具有长度,而且是固定的。
获取到数组的长度语句为: 数组名.length ,属性length的执行结果是数组的长度,int类型结果。
数组的最大索引值为:从零开始到“数组长度-1”为止;数组名.length-1。
索引访问数组中的元素: 数组名[索引]=数值,为数组中的元素赋值
变量=数组名[索引],获取出数组中的元素
数组原理内存图
2.1内存概述
内存是计算机中的重要原件,临时存储区域,作用是运行程序。
我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。
Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
2.2 java虚拟机的内存划分
区域名称: 作用
寄存器: 给CPU使用,和我们开发无关。
本地方法栈: JVM在使用操作系统功能的时候使用,和我们开发无关。
方法区Method Area: 存储可以运行的class文件。
堆内存Heap: 存储对象或者数组,new来创建的,都存储在堆内存。
方法栈Stact: (方法中的变量)方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
2.3 数组在内存中的储存
一个数组内存图
引用变量保存的是堆的内存地址
数组的变量保存的是数组的首地址:
[ :表示数组
I:表示int
@ 在内存中的位置
十六进制:0-9,a-f
两个数组内存图
在Heap中各自有各自的地址.
注:Main方法运行进入stack,stack调用heap中的数据
两个数组名指向同一个数组
同一个数组,同一个地址;
数组的常见操作
3.1数组越界异常
访问数组元素,但是索引编号写错了
修改/访问数组中元素时,索引长度超过length-1;
3.2 数组空指针异常
访问数组元素但是数组没有进行new初始化
数组的变量保存的内存中地址,有地址才可以修改或者访问数组的元素。
A、 数组中变量保存的地址被清空了。
在开发中,清空后,不访问,不修改
不清空,访问修改
3.3 数组遍历
数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。
For(int i= 0; i < 数组名.length;i++){
System.out.println(数组名[i]);
}
Nems.for
3.4 数组获取最大值元素
最大值获取:从数组的所有元素中找出最大值。
实现思路:
定义变量,保存数组0索引上的元素
遍历数组,获取出数组中的每个元素
将遍历到的元素和保存数组0索引上值的变量进行比较
如果数组元素的值大于了变量的值,变量记录住新的值
数组循环遍历结束,变量保存的就是数组中的最大值
3.5 数组反转
铺垫知识:交换数值
数组的反转: 数组中的元素颠倒顺序
实现思想: 定义两个变量,保存数组的最小索引和最大索引
两个索引上的元素交换位置
最小索引++,最大索引–,再次交换位置
最小索引超过了最大索引,数组反转操作结束
数组作为方法参数和返回值
4.1 数组作为方法参数
数组作为方法参数传递,传递的参数是数组内存的地址。
方法的参数:可以是任何类型
数据类型:基本:4类8种
引用:字符串,数组
方法参数:定义方法的()里面写未知量,变量
基本类型可以做方法参数与返回值,基本类型能做的,引用类型也可以。(数组)
4.2 数组作为方法返回值
数组作为方法的返回值,返回的是数组的内存地址
方法返回值可以是任何类型
如果有多个数据,且类型一致,打包成数组,在返回。
返回值:方法计算结果,返回给调用处,保存定义变量。

4.3 方法参数类型区别
方法的参数为基本类型时,传递的是数据值.

方法的参数为引用类型时,传递的是地址值.
1、调用将实参将数组的首地址复制一份给形参
2、方法内修改实参
3、实参会受影响

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值