10、数组、二维数组

一、回顾
    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<array.length;i++) {
        sum = 0;//清空很重要
        System.out.println("请输入第"+(i+1)+"个班的学生成绩:");
        for (int j = 0; j < array[i].length; j++) {
            System.out.println("请输入第"+(j+1)+"个同学的成绩:");
            array[i][j] = s.nextInt();
            sum += array[i][j];
        }
        System.out.println("第"+(i+1)+"班的总成绩是:"+sum);
    }

 

posted @ 2019-07-19 19:33  DHR~小白  阅读(205)  评论(0编辑  收藏  举报