首先对第六天的知识做一总结和细分
1.数组的初始化
所谓的初始化就是为数组开辟内存空间,并为数组中的每个元素赋予初始值;
我们有两种方式可以实现数组初始化
a.动态初始化 只给出长度,由系统给出初始化值
b.静态初始化 给出初始化值由系统决定长度
a. 动态初始化的格式:数据类型【】数组名=new 数据类型(数组长度)
例:int 【】arr = new int(3)。
b. 静态初始化的格式: 数据类型【】数组名= new 数据类型【】{元素}
例:int 【】arr = new int【】{1,2,3};
简化格式:数据类型【】数组名 = {元素}
例:int【】arr = {1,2,3};
2.java中的内存分配
栈(存储的是局部变量)
堆(存储的是new出来的东西)
方法区
本地方法区
寄存器
栈:存储的就是局部变量,局部变量就是定义在方法中的变量,使用完毕立即回收。
int【】arr = new int 【3】;
system.out.println(arr);
system.out.println(arr【0】);
system.out.println(arr【1】);
system.out.println(arr【2】);
因为int【】arr就是main方法中的一个变量,所以它就在栈中存储;那么后面new int【3】就是在堆中存储。
堆:(1)存储的就是new出来的东西被称为实体对象。
(2)每一个对象都有默认地址值。
(3)使用完毕后会在垃圾回收器中立即回收。
3.数组的最大小值获取
public class ArrayTest {
public static void main(String[] args) {
//定义一个数组
int[] arr = {1,2,3,4,5};
//定义参照物
//int max = arr[0];
int min = arr[0];
//遍历数组,将元素与其比较
for(int x=1;x<arr.length;x++){
/*if(max<arr[x]){
max = arr[x];
}
}
System.out.println("max:"+max);
*/
if(min>arr[x]){
min = arr[x];
}
}
System.out.println("min;"+min);
}
然后是了解到的新内容
4.二维数组
概念:其实就是元素为一维数组的数组。
定义格式:
数据类型【】【】数组名
初始化:
动态初始化:
数据类型 【】 【】数组名 = new 数据类型【m】【n】
m表示的是二维数组中一维数组的个数
n表示的是二维数组中元素的个数
静态初始化:
数据类型【】【】数组名 = {{元素......},{元素.....}{元素......}}
package com.arraytest;
public class ArrayArrayTest {
public static void main(String[] args) {
int[][]arr={{1,2,3},{4,5,6},{7,8,9}};
System.out.println("arr");
System.out.println("arr[0]");
System.out.println("arr[1]");
System.out.println("arr[2]");
System.out.println("--------------");
//获取元素
System.out.println("arr[0][0]"+arr[0][0]);
System.out.println("arr[0][1]");
System.out.println("arr[0][2]");
System.out.println("arr[1][0]");
System.out.println("arr[1][1]");
System.out.println("arr[1][2]");
System.out.println("arr[2][0]");
System.out.println("arr[2][1]");
System.out.println("arr[2][2]");
}
}
即就是二维数组配合索引可以获取到每一个一维数组,每一个一维数组配合索引可以获取到每个元素。例如我有一个二维数组arr我要获取一维数组就是arr【索引】;我要获取二维数组中的元素arr【索引】【索引】。
二维数组的遍历
package com.arraytest;
/*public class ArrayArrayTest {
public static void main(String[] args) {
int[][]arr={{1,2,3},{4,5,6},{7,8,9}};
System.out.println("arr");
System.out.println("arr[0]");
System.out.println("arr[1]");
System.out.println("arr[2]");
System.out.println("--------------");
//获取元素
System.out.println("arr[0][0]"+arr[0][0]);
System.out.println("arr[0][1]");
System.out.println("arr[0][2]");
System.out.println("arr[1][0]");
System.out.println("arr[1][1]");
System.out.println("arr[1][2]");
System.out.println("arr[2][0]");
System.out.println("arr[2][1]");
System.out.println("arr[2][2]");
}
}
*/
第二种写法
public class ArrayArrayTest{
public static void main(String[] args) {
int[][]arr = {{1,2,3},{4,5,6},{7,8,9}};
/*for(int x=0;x<arr[0].length;x++){
System.out.println(arr[0][x]);
}
for(int x=0;x<arr[1].length;x++){
System.out.println(arr[1][x]);
}
for(int x=0;x<arr[2].length;x++){
System.out.println(arr[2][x]);
}
*/
//简化写法
for(int y=0;y<3;y++){
for(int x=0;x<arr[y].length;x++){
System.out.println(arr[y][x]);
}
}
}
}