数组异常-空指针异常
在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,
则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常
int [] arr = new int[4];
System.out.println(arr[0]);arr = null;
System.out.println(arr[0]);//空指针异常
/*D:\workspase\20180914>javac DEMO1.java
D:\workspase\20180914>java DEMO1
0
Exception in thread "main" java.lang.NullPointerException
at DEMO1.main(DEMO1.java:8)
*/
二维数组:
三种定义方式:
第一种:
int[][] arr = new int[3][4];
第二种:
int[][] arr = new int[3][];(了解即可)
第三种:
int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
二维数组的访问:
/*int[][] arrt = new int[3][4];
System.out.println(arrt[0][1]);//0
System.out.println(arrt[1]);//地址
System.out.println(arrt);//地址*/
二维数组的内存图:
二维数组的遍历:
循环嵌套
for(int i=0;i
for(int j=0;j
arr[i][j];
}
};
举个例子:(累加求和)
int[][] arrt = {{1,2,3},{2,2,3},{2222,1}};
System.out.println(arrt[0][1]);
System.out.println(arrt[2][1]);
System.out.println(arrt[1][1]);//遍历二维数组
int sum1 = 0;int sum2 = 0;for(int i = 0;i < arrt.length;i++){for(int j = 0;j < arrt[i].length;j++){
sum1= sum1 +arrt[i][j];
}
sum2= sum2 +sum1;//分组和
System.out.println(sum1);//清零
sum1 = 0;
}//总和
System.out.println(sum2);
方法:
在Java中,声明一个方法的具体语法格式如下:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){
执行语句
………
return 返回值;
}
对于上面的语法格式中具体说明如下:
⦁修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等,这些修饰符在后面的学习过程中会逐步介绍public
⦁返回值类型:用于限定方法返回值的数据类型void
⦁参数类型:用于限定调用方法时传入参数的数据类型
⦁参数名:是一个变量,用于接收调用方法时传入的数据
⦁return关键字:用于结束方法以及返回方法指定类型的值(1,结束 2.返回方法指定类型的值给调用者)
⦁返回值:被return语句返回的值,该值会返回给调用者
需要特别注意的是,方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。
举个例子:
classDEMO2
{public static voidmain(String[] args)
{double a = getArea(2);//(2)实参
System.out.println(a);int b = 2;
getChang(b,3);//(b,3)实参:变量,常量都行;
/*D:\workspase\20180914>javac DEMO2.java
D:\workspase\20180914>java DEMO2
12.566370614359172
长方形的面积为:6*/}//求圆的面积
public static double getArea(double r){//(double r)为形参
double area = r*r*Math.PI;//因为返回值为double,需要写return;
returnarea;
}//求长方形的面积
public static void getChang(int a,int b){//(int a,int b)为形参
int area = a*b;
System.out.println("长方形的面积为:"+area);//因为返回值是void,不能写return;
}
}
内存图解: