JAVA第二天(数组)

1、数组定义格式
1.1什么是数据

数组是一种用于存储多个相同类型数据的存储模型

1.2数组的定义格式

格式一:数据类型[] 变量名
例 : int[] arr
定义了一个int类型的的数组,数组名为arr

格式二:数据类型 变量名[]
例 : int arr[]
定义了一个int类型的变量,变量名是arr数组

2、数组初始化之动态初始化
2.1数组初始化概述

Java中的数组必须先初始化,然后才能使用 所谓初始化:就是数组中的数组元素分配内存空间,并为每个数组元素赋值。

2.2数组初始化方法

动态初始化
静态初始化

2.3动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

格式:数据类型[] 变量名=new 数据类型[数组长度]
例:int[] arr = new int[3]

3、数组元素访问
3.1数组元素访问

数组变量访问方式 格式:数组名

数组内部的访问方式 格式:数组名[索引]

索引
作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
1、索引从0开始
2、索引是连续的 所以逐一增加
3、每次加1

4、内存分配
4.1JAVA中内存分配

栈内存:存储局部变量 定义在放大中的变量,例如:arr使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)

数组在初始化时,会为存储空间添加默认值 每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被收回。

5、数组初始化之静态初始化
5.1数组初始化之静态初始化

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

  • 格式:数据类型[ ] 变量名=new 数据类型[]{数据1,数据2,数据3,…};
  • 例:int[ ] arr=new int[]{1,2,3};
  • 简化格式:数据类型[ ] 变量名={数据1,数据2,数据3,…}
  • 例:int[] arr={1,2,3};
6、数组操作的两个常见小问题
  • 索引越界

int[ ] arr = new int[3];
System.out.print(arr[3]);
原因: 因为下标排序从0开始,所以当他为arr[3]时,就会搜索不到数组元素,从而产生错误.

  • 空指针异常

int[ ] arr = new int[3];
System.out.println(arr[2]);
arr=null;
System.out.println(arr[0]);

原因:
因为arr原来栈内存地址的值为001,相当于指针,可以指向堆内存的地址,但当把null赋值给arr时,就斩断了连接,指针指向空,就找不到地址值了

7、数组常见操作
7.1 遍历

int [ ] arr ={11,22,33,45};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);

简化方式:
for(int x=0; x<5; x++){
System.out.println(arr[x]);
}

7.2 获取数组元素数量

格式:数组名.length
例:arr.length

7.2 获取最值

思路:
1、定义一个变量,用于保存最大值
2、取数组中的第一个数据作为变量的初始值
3、与数组中剩余的数据逐个比较
4、循环结束后打印变量的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值