【Java大数据】一维数组、二维数组

一维数组

定义:可以存储多个相同数据类型元素的容器

格式一

数据类型[] 数组名=new 数据类型[元素个数/数组长度];

int[] arr=new int[3]; //指定长度为3的整型数组arr

数据类型 名称=new 初始化; //定义变量

变量定义分为声明和初始化两个过程

可以分为声明和初始化两个过程
【Java大数据】一维数组、二维数组
通过唯一的内存地址值(数组名)来确定数组,Java会自动给数组元素进行编号(下标),从0开始。由

内存地址值和下标就能唯一确定数组里的元素—数组名[下标]。

格式二

数据类型[] 数组名=new 数据类型[]{元素值1,元素值2,…};

int[] arr=new int[]{1,2,3};

//给定数组元素值来确定长度不用给定长度值

可以分为声明和初始化两个过程
【Java大数据】一维数组、二维数组
格式三

数据类型[] 数组名={元素值1,元素值2,…};

int[] arr={1,2,3}; //给定元素值长度确定

不可以分为声明和初始化两个过程

初始化—报错,没有开辟内存空间,无法存储元素
【Java大数据】一维数组、二维数组

New—开辟内存空间(在堆里面开辟)

数组应用
1、遍历—依次把数组元素进行输出
【Java大数据】一维数组、二维数组

2、最值—求出数组元素的最大值和最小值
【Java大数据】一维数组、二维数组

3、查找—给定查找数,返回数组第一次出现的下标值
【Java大数据】一维数组、二维数组

4、排序—给元素值排列顺序 冒泡、选择
冒泡排序
【Java大数据】一维数组、二维数组
选择排序
【Java大数据】一维数组、二维数组
5、扩容—数组定义完成,长度无法改变—数组复制
【Java大数据】一维数组、二维数组

Java的内存

栈:存储的是变量(暂且),当存储的内容使用完毕之后会立即清除

堆:存储的是对象,当存储的内容使用完毕之后会等到某个时刻来进行回收

方法区(面向对象)

本地方法栈(不讲)

寄存器(程序计数器)(不讲)

系统默认初始值

(byte、short、int—0)

(char—’\u0000’ \u代表以utf-16进行编码)

(long—0L)

(float—0.0F)

(double—0.0)

(boolean—false)

(引用数据类型—Null)

不是基本数据类型就是引用数据类型(String)

0x1:地址值 通过地址值找数组

两个引用指向同一块堆内存—共享

二维数组

存储元素是一维数组的数组

定义格式:

数据类型[][] 数组名 = new 数据类型[二维数组的长度/一维数组的个数][每个一维数组的长度];

int[][] arr = new int[2][3];
【Java大数据】一维数组、二维数组
数据类型[][] 数组名 = new 数据类型[二维数组的长度/一维数组的个数][];

int[][] arr = new int[3][]; //声明3个一维数组

//初始化

arr[0] = new int[4];

arr[1] = new int[]{1,2,3};

arr[2] = {3,4,5};//没有开辟空间无法存储数据
【Java大数据】一维数组、二维数组
数据类型[][] 数组名 = {{元素值1,元素值2,…},{元素值1,元素值2,…}…}

int[][] arr = {{1,2,3},{3,4}};
【Java大数据】一维数组、二维数组