数组概述和定义格式
数组的概念
数组是存储同一种数据类型多个元素的集合。
数组即可以存储基本数据类型,也可以存储引用数据类型。
数组的定义格式
格式1: 数据类型 [] 数组名;
格式2:数据类型 数组名[];
例:
int[] a; //定义了一个int型的数组a
int a[]; //定义了一个int型的a数组
数组的初始化和动态初始化
数组的初始化
为数组中的数组元素分配内存空间,并为每个数组元素赋值,注意java中的数组必须先初始化,然后才能使用。
初始化的分类
动态初始化: 只定义长度,由系统给出初始化值
格式: 数组类型[]数组名=new 数组类型[数组长度];
注意数组长度就是数组中元素的个数
例:
int[] a= new int[3]; //定义了一个int型的数组a,长度为3
静态初始化: 给出初始化值,由系统决定长度
java中的内存分配
在写数组的内存分配之前,先聊聊Java中的内存分配
1、栈:从放局部变量(在方法定义中或方法声明上的变量)
2、堆:存放new出来的东西
特点:a、每一个new出来的东西都会为其分配一个地址值
b、每一个变量都有一个默认值
byte,short,int,long默认值为0
float,double默认值为0.0
char默认值为‘\u0000’(空格)
boolen默认值为false
引用数据类型默认值为null
3、方法区:存储类的.class文件,main方法之类的
4、本地方法区:(和系统相关)
5、寄存器:(cpu使用)
数组内存图解
3个引用2个数组
二维数组概述
二维数组定义
二维数组其实就是每个元素为一维数组的数组
二维数组的格式(1)
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组 必须写上
n表示每一个一维数组的元素个数 可选
例:
int[][] arr = new int[3][2];
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
表示获取第m+1个一维数组的第n+1个元素
二维数组的格式(2)
数据类型[][] 变量名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。
例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[1];
二维数组的格式(3)
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
二维数组内存图解
int[][] arr=new int[3][2];