数组的初始化方式:
- 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。
- 动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。
//静态初始化:
//第一种方式:
String[] arr= new String[]{ "1", "2", "3", "4"};
//第二种方式:
String[] str={"11","22"};
//动态初始化:
String[] strArr = new String[5];
System.out.println(arr.length);//4
System.out.println(str.length);//2
System.out.println(strArr.length);//5
遍历二维数组
二维数组定义方式:数据类型[][] 数组名 推荐方式
这两种不推荐:
数据类型[] 数组名[] 例如:int[] a[]= {{1,2,3},{1213}};
数据类型 数组名[][] 例如:int b[][]= {{1,2,3},{1213}};
int[][] arr=new int[][]{{1,2},{2,3,4},{1}};
for (int[] is : arr) {
for (int i : is) {
System.out.print(i+" ");//不换行
}
System.out.println();
}
System.out.println("----------");
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j]+" ");//不换行
}
System.out.println();
}
结果:
- 1 2
- 2 3 4
- 1
- ----------
- 1 2
- 2 3 4
- 1
求数组的最大值
int[] arr= {12,312,12,424,54,67,568,76,54,6,576,323};
int max=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max) {
max=arr[i];
}
}
System.out.println(max);//576
异常
int[] arr = {1,2,3};
//访问数组元素
//System.out.println(arr[3]);//ArrayIndexOutOfBoundsException数组越界异常
//引用类型:类,接口,数组
//常量:空常量,null,是可以赋值给引用类型的
arr = null;//解除引用地址然后就会报null
System.out.println(arr[1]);//java.lang.NullPointerException
堆栈信息:
int[] a=new int[3];
System.out.println(a[0]);//0
byte[] b=new byte[3];
System.out.println(b[0]);//0
short[] s=new short[3];
System.out.println(s[0]);//0
double[] d=new double[3];
System.out.println(d[0]);//0.0
float[] f=new float[3];
System.out.println(f[0]);//0.0
long[] l=new long[3];
System.out.println(l[0]);//0
boolean[] flag=new boolean[3];
System.out.println(flag[0]);//false
char[] c=new char[3];
System.out.println(c[0]);// 打印出来的类似空格的东西
System.out.println(c[0]=='\u0000');//true 其实是这个东西
System.out.println("-----------------");
//String\Integer\Byte\Short\Character\Float\Double\Boolean\Long 默认值为null 这些是对象
String[] a1=new String[3];
System.out.println(a1[0]);//null 其他也为null 不演示