1.数组的特点:
具有相同的类型,可以通过数组名称和下标确定数组中的元素
2.JVM内存分配:栈和堆
栈的特点:内存空间小,数据读写速度快(存储所有在方法中定义的变量和字面量)
堆的特点:内存空间大,数据读写速度相对比较慢(所有引用类型数据【对象】)
3.new关键字:new负责向堆内存申请空间,用来存储即将创建的数值
int[] arr =new int[10]; 等价于 int arr[]; arr= new int[10];
4.计算机的数据存储的时候存放在哪里?答案:硬盘
5.读写和运行的时候存放在哪里?答案:内存
6.数组中的每一个元素都是先后顺序的;
下标(索引)来获取指定位置的元素
下标是基于0的;0对应的是数据的第一元素
下标1对应的是数组的第二个元素;以此类推
7.初始化数组
byte short int long 初始值为0
char默认值为false
float和double默认值为0.0
如果数组存放的是引用类型数据,元素默认值为null
①动态初始化(元素没有确定,需要赋值)
int arr[]=new int[10];//声明了一个长度为10的数组容器,这个数组只能存放int类型的数据
arr[0]=0;//设置数组的第一个元素为0
arr[1]=1;//设置数组的第二个元素为1
②静态初始化(元素已经确定,不需要赋值)
int arr[]={1,2,3,4,5};
8.一维数组
int arr1[]={1,2,3,4,5};
int arr2[]={6,7,8,9,10};
arr1=arr2; //引用arr2 把arr2存储的数组的内存地址传递给了arr1
System.out.println(arr1[0]); //打印的是6
9.二维数组
①静态初始化
int[][] arr={{1,2,3,4,5},
{6,7,8,9},
{10,11}
}
for(int i=0;i<arr.length;i++){ //遍历的是行
//二维数组中 每一行对应的数组长度是不一致的
//在读取每一行之前 要单独堆数组的长度进行判断
for(int j=0;j<arr[i].length;j++){//遍历的是每一行的数据
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
打印结果:1 2 3 4 5
6 7 8 9
10 11
②动态初始化
*二维数组同样的可以完成动态初始化
定义一个三行的二维数组(由三个一维数组所组成)
int[][] arr1 =new int[3][4];//指的是数组为3行4列
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[4];
打印结果: 0 0
0 0 0
0 0 0 0
*10.printf 格式化打印:
%d 整型数据
%f 浮点型数据
%c char数据
%s 字符串数据
%b 布尔值
%n 换行