1.Java中的数组
数组是一种引用类型。数组用于存放一组数据类型统一的数据。
1.1.一维数组
定义一个数组:
数据类型[] 数组名称;
动态初始化:
数据类型[] 数组名称 = new 数组类型[数组长度];
1 int[] javaCore = new int[74];
静态初始化:
数据类型[] 数组名称 = new 数组类型[]{元素1,元素2,...};
静态初始化(简化格式,常选择这样初始化数组):
数据类型[] 数组名称 = {元素1,元素2,...};
1 double[] salary = new double[] {3500.0, 5500.0, 7000.0}; 2 double[] salary = {3500.0, 5500.0, 7000.0}; //简便格式
数组的长度:属性length
1 int[] ar = { 3, 2, 45, 455, 4, 45, }; 2 System.out.println(ar.length);
注意:
一旦数组被创建,数组的长度就不能发生改变。
1.2.二维数组
二维数组,就是元素为一维数组的数组。
定义格式:
A.数据类型[][] 数组名; (推荐方式)
B.数据类型 数组名[][];
C.数据类型[] 数组名[];
初始化二维数组的方式:
A.动态初始化:数据类型[][] 数组名 = new 数据类型[m][n];
B.静态初始化:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,...}, {...}, {...},...};
简化格式:数据类型[][] 数组名 = {{元素1,元素2,...}, {...}, {...},...};
注意:这么给数组赋值,是错误的。
int[][] arr = new int[3][3]; arr = {{1,2,3}, {2,3,4}, {5,6,7}}; // 动态数组不可以如此赋值
2.Java的内存分配
定义数组后,会在内存中开辟一定的空间。申请内存在java中由JVM来完成,JVM把从系统内存申请到的内存划分为五个部分。包括:栈(Stack,主要用来存放局部变量)、堆(Heap,存放对象)、方法区(Method Area,存放与.class相关的信息)、本地方法区(Native Method Area,与操作系统相关)、寄存器(pc Register,与cpu相关)。
堆,存储的是new出来的东西(实体、对象、),堆中存储的数据有这些特点:每一个对象都有地址值,每一个对象的数据都有默认值,使用完毕后会在垃圾回收器空闲的时候被回收。
栈,存储的是局部变量(在方法中被定义的变量,称作“局部变量”)。使用完毕,立即回收。
类型 | 默认值 |
byte、short、int、long | 0 |
float、double | 0.0 |
char | '\u0000' |
boolean | false |
引用类型 | null |
来源:https://www.cnblogs.com/argor/p/8847642.html