1. 数组声明
//方法一:首选
dataType[] arrayName;
//方法二:非首选,像c++
dataType arrayName[];
2. 数组创建
2.1 动态初始化
//不初始化,大小自行决定
dataType[] array = new dataType[arraySize];
- 如果动态初始化会赋予该类型元素的默认值:0,0.0,false
- 可以指定数组长度,其中数组长度:arrayName.length;
//例如:
//int[] a = new int[10];//创建了一个长为10的int型数组
int[] a;
a = new int[10];// 4-5与3等价
System.out.println(a);//输出[I@1b6d3586
2.2 静态初始化
//不简写格式:
dataType[] arrayName = new dataType[]{value1, value2, value3, ... };
//简写格式:
dataType[] arrayName = {value1, value2, value3, ... };
- 静态初始化,数组大小由系统根据初始赋值数量计算自动得出
- 不能手动给arraySize,即使和赋值数量相等也不行,也就是说第二个[]内不可以有参数
- 此种方式也保留了更改数组内每个值的权利
3. 数组的存放
3.1数组内容(元素)都是存放在堆中的。
- 无论数组是动态初始化还是静态初始化都用了 new 关键字来创建空间。静态初始化简写格式实际上也 new 了。
3.2 数组名存放在堆或栈中
数组名实际上是一个引用,存放的是堆区的地址值。这个变量存放在堆区还是栈区取决于它是局部变量还是实例变量。
public class Number {
int array = new int [10];//此array在堆区
public void fun(){
int array = new int [10];//此array在栈区
}
}
3.2.1 地址扩展
int[] a = new int[10];//创建了一个长为10的int型数组
System.out.println(a);//输出[I@1b6d3586
地址值的格式含义 [I@1b6d3586
[
:表示当前是一个数组I
:表示当前数组里面的元素都是int类型的@
:表示一个间隔符号。(固定格式)1b6d3586
:才是数组真正的地址值.(十六进制), 平时我们习惯性的会把这个整体叫作数组的地址值。
4.数组的使用
public static void main(String[] args) {
int[] array = new int[] {1,2,3,4,5};
int count = 0;
//增强for遍历数组
for (int a:array) {
System.out.println("array["+(count++)+"]=" + a);
}
System.out.println("-------------");
array[2]=4;//通过下标修改元素的值
//普通for遍历数组
for (int i = 0; i < array.length; i++) {
System.out.println("array["+i+"]=" + array[i]);
}
}
5.Arrays类
- Arrays类里的方法都是静态方法可以通过Arrays.方法名()直接调用
import java.util.Arrays;
标签:10,int,dataType,Day10,数组,new,array
From: https://www.cnblogs.com/wendao101/p/17875536.html