一、回顾
1、数组中只能存取相同数据类型的数据 2、数组长度一旦确定,是不能修改的 3、数组中的下标是从0开始的,逐一递增。逐一数组下标越界的问题 4、数组的使用: 先创建,再赋值 变创建边赋值 5、数组只是起到了我们程序员好起名字,并且使用方便的功能,存储空间和单个的变量一样二、java程序中的错误
1、编译时错误:
语法错误,编译无法通过,会直接报错。可以直接看到的ide集成开发环境会直接给出提示信息 2、运行时错误: 符合语法规范,编译可以通过,因为逻辑错误,运行时直接报错三、一维数组、二维数组、、、地理信息系统可能需要用到三维数组
1、例子:有5个班,每班5名学生,以班为单位统计所有学生的成绩
//一维数组// int[] array1 = {100,98,66,95,91};// int[] array2 = {100,98,66,95,91};// int[] array3 = {100,98,66,95,91};// int[] array4 = {100,98,66,95,91};// int[] array5 = {100,98,66,95,91}; //二维数组int[][] array = { { 100,98,66,95,91},{ 100,98,66,95,91},{ 100,98,66,95,91},{ 100,98,66,95,91},{ 100,98,66,95,91}};
2、基本语法
数据类型[][] 数组名;
数据类型 数组名[][];3、使用:
声明
分配内存空间 赋值 使用// 声明// int[][] array;//// 分配内存空间:第一个方框是必须写的(是第一个维度),第二个可以不写(属于第二个维度);另外,第二个可以不同//// array = new int[5][];// array = new int[3][5];//// 赋值// array[0][0] = 90;// //// 使用// System.out.println(array[0][0]); //边创建边赋值// int[][] array = { {1,2},{2,5}};// for (int i = 0; i < array.length; i++) {// for (int j = 0; j < array[i].length; j++) {// System.out.print(array[i][j]+"\t");// }// System.out.println();// }
4、java的内存模型
栈内存: 堆内存: 基本数据类型:8种:boolean byte char short int ling float double(存放在占内存中); 引用数据类型:存放在栈内存和堆内存中;通过new关键字创建的变量; int num =10; String str = new String("java");//等号左边的都是在栈内存中的;堆内存中存放java;占内存中的值是堆内存中的地址 String str2 = "java";//在栈和字符串常量池中 综上:能用基本数据类型解决的,用基本数据类型解决,否则是String,最后是对象 1、java中的变量都是保存在栈内存中 2、如果是基本数据类型,栈内存中保存的就是数值; 如果是引用数据类型,栈内存存储的是堆内存中的地址,通过内存地址引用堆内存中的数据
5、上一个例子的完整代码
/** * 例子:有5个班,每班3名学生,以班为单位统计所有学生的成绩 */ int[][] array = new int[5][3]; int sum = 0; Scanner s = new Scanner(System.in); for(int i=0;i