黑马程序员_Java语言基础_数组

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

05.01_Java语言基础(数组概述和定义格式说明)

  • A:为什么要有数组(容器)//方便存储很多的数据,简单操作,方便计算
  • B:数组概念//数组就是一个容器,就是存储
  • C:数组定义格式
    数据类型[] 数组名 = new 数据类型[数组的长度];

05.02_Java语言基础(数组的初始化动态初始化)

  • A:什么是数组的初始化
  • B:如何对象数组进行初始化
    • a:动态初始化 只指定长度,由系统给出初始化值
      • int[] arr = new int[5];
    • b:静态初始化 给出初始化值,由系统根据给定的值决定长度
      • int[] arr = new int[]{1,2,3,4,5};
      • int[] arr = {1,2,3,4,5};
  • C:动态初始化的格式:
    • 数据类型[] 数组名 = new 数据类型[数组长度];
  • D:案例演示
    • 对数组的解释
    • 输出数组名称和数组元素
        int[] arr = { 1, 2, 3, 5 };
        System.out.println(arr);//[I@175078b//[:数组I:Integer@:分割175078b:哈希值 相关内存地址 每次运行都不同
        for (int i : arr) {//遍历
            System.out.println(i);//1 2 3 5
        }

05.03_Java语言基础(Java中的内存分配以及栈和堆的区别)

  • A:栈//运行方法的
  • B:堆//凡是new出来的,存储的是实体容器
  • C:方法区//存储方法的,class文件
  • D:本地方法区//JVM调用Windows中的功能使用
  • E:寄存器//操作与CPU有关内容

05.04_Java语言基础(数组的内存图解1一个数组)

  • A:画图演示
    • 一个数组
      黑马程序员_Java语言基础_数组_第1张图片

05.05_Java语言基础(数组的内存图解2二个数组)

  • A:画图演示
    • 二个不同的数组
      黑马程序员_Java语言基础_数组_第2张图片

05.06_Java语言基础(数组的内存图解3三个数组)????

  • A:画图演示
    • 三个数组,有两个数组的引用指向同一个地址
      黑马程序员_Java语言基础_数组_第3张图片

05.07_Java语言基础(数组的初始化静态初始化及内存图)

  • A:静态初始化的格式:
    • 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
    • 简化格式:
      • 数据类型[] 数组名 = {元素1,元素2,…};
  • B:案例演示
    • 对数组的解释
    • 输出数组名称和数组元素
  • C:画图演示
    • 一个数组
      黑马程序员_Java语言基础_数组_第4张图片

05.08_Java语言基础(数组操作的两个常见小问题越界和空指针)

  • A:案例演示
    • a:ArrayIndexOutOfBoundsException:数组索引越界异常
      • 原因:你访问了不存在的索引。
    • b:NullPointerException:空指针异常
      • 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
      • int[] arr = {1,2,3};
      • arr = null;
      • System.out.println(arr[0]);

05.09_Java语言基础(数组的操作1遍历)

  • A:案例演示
    • 数组遍历:就是依次输出数组中的每一个元素。
    • 数组的属性:arr.length数组的长度
    • 数组的最大索引:arr.length - 1;

05.10_Java语言基础(数组的操作2获取最值)

  • A:案例演示
    • 数组获取最值(获取数组中的最大值最小值)
      黑马程序员_Java语言基础_数组_第5张图片

05.11_Java语言基础(数组的操作3反转)

  • A:案例演示
    • 数组元素反转(就是把元素对调)
      黑马程序员_Java语言基础_数组_第6张图片

05.12_Java语言基础(数组的操作4查表法)

  • A:案例演示
    • 数组查表法(根据键盘录入索引,查找对应星期)

05.13_Java语言基础(数组的操作5基本查找)

  • A:案例演示
    • 数组元素查找(查找指定元素第一次在数组中出现的索引)

05.14_Java语言基础(二维数组概述和格式1的讲解)

  • A:二维数组概述
  • B:二维数组格式1
    • int[][] arr = new int[3][2];
  • C:二维数组格式1的解释
  • D:注意事项

    • a:以下格式也可以表示二维数组
      • 1:数据类型 数组名[][] = new 数据类型[m][n];
      • 2:数据类型[] 数组名[] = new 数据类型[m][n];
    • B:注意下面定义的区别
    • int x;
      int y;
      int x,y;
      
      int[] x;
      int[] y[];
      
      int[] x,y[];    x是一维数组,y是二维数组
      
  • E:案例演示
    • 定义二维数组,输出二维数组名称,一维数组名称,一个元素
      黑马程序员_Java语言基础_数组_第7张图片

05.15_Java语言基础(二维数组格式1的内存图解)

  • A:画图演示
    • 画图讲解上面的二维数组名称,一维数组名称,一个元素的值的问题

05.16_Java语言基础(二维数组格式2的讲解及其内存图解)

  • A:二维数组格式2
    • int[][] arr = new int[3][];
  • B:二维数组格式2的解释
  • 二维数组中,包含三个一维数组,但是每个一维数组中存储多少元素,没有定义

05.17_Java语言基础(二维数组格式3的讲解及其内存图解)

  • A:二维数组格式3
    • int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
  • B:二维数组格式3的解释
  • 定义二维数组,二维中3个小数组,第一个小数组存储1,2,3,第二个小数组存储4,5,第三个小数组存储6,7,8,9

05.18_Java语言基础(二维数组练习1遍历)

  • A:案例演示

    • 需求:二维数组遍历

    • 外循环控制的是二维数组的长度,其实就是一维数组的个数。

    • 内循环控制的是一维数组的长度。

05.19_Java语言基础(二维数组练习2求和)

  • A:案例演示

  • 需求:公司年销售额求和
    某公司按照季度和月份统计的数据如下:单位(万元)
    第一季度:22,66,44
    第二季度:77,33,88
    第三季度:25,45,65
    第四季度:11,66,99

05.20_Java语言基础(思考题Java中的参数传递问题及图解)

  • A:案例演示
  • 看程序写结果,并画内存图解释
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("a:"+a+",b:"+b);
        change(a,b);
        System.out.println("a:"+a+",b:"+b);
    
        int[] arr = {1,2,3,4,5};
        change(arr);
        System.out.println(arr[1]);
    }
    
    public static void change(int a,int b) {
        System.out.println("a:"+a+",b:"+b);
        a = b;
        b = a + b;
        System.out.println("a:"+a+",b:"+b);
    }
    
    public static void change(int[] arr) {
        for(int x=0; x

你可能感兴趣的:(黑马)