【Java大数据】一维数组、二维数组
一维数组
定义:可以存储多个相同数据类型元素的容器
格式一
数据类型[] 数组名=new 数据类型[元素个数/数组长度];
int[] arr=new int[3]; //指定长度为3的整型数组arr
数据类型 名称=new 初始化; //定义变量
变量定义分为声明和初始化两个过程
可以分为声明和初始化两个过程
通过唯一的内存地址值(数组名)来确定数组,Java会自动给数组元素进行编号(下标),从0开始。由
内存地址值和下标就能唯一确定数组里的元素—数组名[下标]。
格式二
数据类型[] 数组名=new 数据类型[]{元素值1,元素值2,…};
int[] arr=new int[]{1,2,3};
//给定数组元素值来确定长度不用给定长度值
可以分为声明和初始化两个过程
格式三
数据类型[] 数组名={元素值1,元素值2,…};
int[] arr={1,2,3}; //给定元素值长度确定
不可以分为声明和初始化两个过程
初始化—报错,没有开辟内存空间,无法存储元素
New—开辟内存空间(在堆里面开辟)
数组应用
1、遍历—依次把数组元素进行输出
2、最值—求出数组元素的最大值和最小值
3、查找—给定查找数,返回数组第一次出现的下标值
4、排序—给元素值排列顺序 冒泡、选择
冒泡排序
选择排序
5、扩容—数组定义完成,长度无法改变—数组复制
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];
数据类型[][] 数组名 = new 数据类型[二维数组的长度/一维数组的个数][];
int[][] arr = new int[3][]; //声明3个一维数组
//初始化
arr[0] = new int[4];
arr[1] = new int[]{1,2,3};
arr[2] = {3,4,5};//没有开辟空间无法存储数据
数据类型[][] 数组名 = {{元素值1,元素值2,…},{元素值1,元素值2,…}…}
int[][] arr = {{1,2,3},{3,4}};