数组
-
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。数组既可以存储基本数据类型,亦可以存储引用数据类型。
-
数组定义格式:数据类型[] 数组名;
-
数组的初始化:Java中的数组必须先初始化,然后才能使用。所谓的初始化就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
3.1 初始化的分类:
a:动态初始化:只给定长度,由系统给出初始化值。
b:静态初始化:给出初始化值,由系统决定长度。
注意事项:这两种方式只能使用一种,不能动静结合
3.2 动态初始化的格式:数据类型[] 数组名=new 数据类型[数组长度]
4.Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域
4.1 栈:存放的是局部变量
4.2 堆:存放的是所有new出来的东西
特点:
a:每一个new出来的东西都会为其分配一个地址值
b:每一个变量都有一个默认值
byte,short,int ,long 0
float,double 0.0
char ‘\u0000’
boolean false
引用数据类型 null
c:使用完毕就成为了垃圾,等待垃圾回收器对其回收
4.3 方法区
4.4 本地方法区
4.5 寄存器(CPU使用)
-
定义一个数组,输出数组名和数组中的元素值,给数组赋值,再次输出数组名称和数组中的元素值
public class Shu { public static void main(String[] args) { int [] arr=new int[5]; System.out.println(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } arr[0]=3; arr[1]=4; arr[2]=5; arr[3]=6; arr[4]=7; System.out.println(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
二维数组
-
二维数组就是每一个元素是一位数组的数组。
-
二维数组格式:数据类型[][] [ ] [ ] 变量名=new 数据类型[m] [n];
m表示这个二维数组有多少个一维数组,必须写上
n表示每个一维数组的元素个数(可选)
注意:int x,y;
int [] x,y[];
区别是:int[] x,y[]; 定义了两个数组 ,一个是一维数组x,一个是二维数组y
x= new int[3];
y=new int[3] [ ];
-
定义一个二维数组,输出二维数组的名称和二维数组的的每一个一维数组,然后动态给二维数组赋值一维数组,再次输出二维数组中的每一个一维数组,给二维数组中的元素赋值,输出对应的元素值
public class Shu { public static void main(String[] args) { int [][] arr=new int[3][]; System.out.println(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } arr[0]=new int[2]; arr[1]=new int[2]; arr[2]=new int[1]; System.out.println(arr); arr[0][0]=5; arr[0][1]=2; arr[1][0]=3; arr[1][1]=7; arr[2][0]=1; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.println(arr[i][j]); } } } }
-
打印杨辉三角(键盘录入)
import java.util.Scanner; public class YangHui { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入行数n:"); int n=scanner.nextInt(); int [][] arr=new int[n][n]; for (int i = 0; i < arr.length; i++) { arr[i][0]=1; arr[i][i]=1; } for (int i = 2; i < arr.length; i++) { for (int j = 1; j <i; j++) { arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; } } for (int i = 0; i < arr.length; i++) { for (int j = 0; j <=i; j++) { System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }