Java学习——数组

Java学习——数组

数组的关键元素
1.数组名
2.元素
3.角标、下标、索引
4.数组的长度和个数

【注】
1.数组的元素可以是任何数据类型

2.创建数组的对象会再内存中开辟一整块连续空间

3.数组的长度一旦确定,就不能修改

数组的分类:
1.按维数:一维 二维

2.按数组元素类型:基本数据类型 引用数据类型

一维数组的使用:
1.一维数组的声明和初始化

2.如何调用数组指定位置的元素

3.如何遍历数组

4.如何获取数组长度

5.数组元素的默认初始化值

6.数组的内存解析

一维数组的声明:
//1.1静态初始化 数组的初始化和数组元素的赋值操作同时进行
int[] ids = new int[]{1,2,3,4}

//1.2动态初始化 数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];

声明时,数据类型取决于数组元素的类型,数组一旦初始化完成,数组的长度就已经确定

调用一维数组的元素
names[0] = “xiaomu”
names[1] = “xiaomu2”

name[4] = “xiaomu3”

数组的角标从0开始,到length-1结束

获取数组的长度
属性 length

“数组名.length”

遍历数组
利用循环

一维数组元素的默认初始化值
1.数组元素是整型 初始化值0

2.数组元素是浮点型 初始化值0.0

3.数组元素是char型 初始化值‘0’ 在console中输出类似空格效果

4.数组元素是boolean 初始化值 false

一维数组的内存解析
1.new出来的变量都应该存储在堆里

2.将存储在堆空间的变量首地址值赋给栈中开辟的数组
一维数组的内存解析
二维数组
1.定义
可以看作一维数组的元素又是一个一维数组

2.数组的声明
2.1静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}}
int[][] arr1 = {{1,2,3},{4,5},{6,7,8}}

2.2动态初始化1
String[][] arr2 = new String[3][2]

2.2动态初始化2
String[][] arr3 = new String[3][]

3.用length属性获取二维数组的长度时输出的结果取决于外层数组的长度

二维数组默认初始化值
1.针对2.2动态初始化1,外层元素的初始化值为地址值,内层元素的初始化值与一维数组初始化情况相同。

2.针对2.2动态初始化2,外层元素的初始化值为null,内层元素的初始化值不能调用,否则报错。

数组的复制
1.要在内存中新开了一块存储地址才可以称作复制

2 arr2 = arr1 (这不能称作数组的复制,仅是对数组2赋值)

arr2 = new int [arr1.length];//开辟一块新的数组空间
for(i = 0;i < arr2.length; i++){
arr2[i] = arr1[i];
}

上述代码块的操作可以说是数组的复制

数组的查找
1.线性查找
从某个下标开始顺序查找,

2.二分法查找

数组的排序
1.冒泡排序
2.快排
3.推排序
4.归并排序
5.直接排序

数组中常见的异常:
1.ArrayIndexOutOfBoundsExcePtion:数组角标越界异常
2.NullPointerException:空指针异常

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值