黑马程序员_java语言_数组

本文详细介绍了Java中的数组概念、定义、初始化方式及其内存分配原理。涵盖了数组的基础操作如遍历、获取最大值和反转等,并深入探讨了数组在Java内存模型中的存储位置及其区别,包括栈、堆等。此外,还解析了一维与二维数组的不同形式和内存布局。

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
25.01_Java语言基础(数组概述和定义格式说明)

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

25.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:案例演示
    • 对数组的解释
    • 输出数组名称和数组元素
<code class="hljs cs has-numbering"><span style="font-size:14px;"> </span></code><pre class="html" name="code"><span style="font-size:14px;"> 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
        }
</span>


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

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

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

  • A:画图演示
    • 一个数组

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

  • A:画图演示
    • 二个不同的数组

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

  • A:画图演示
    • 三个数组,有两个数组的引用指向同一个地址

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

  • A:静态初始化的格式:
    • 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
    • 简化格式:
      • 数据类型[] 数组名 = {元素1,元素2,…};
  • B:案例演示
    • 对数组的解释
    • 输出数组名称和数组元素
  • C:画图演示
    • 一个数组

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

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

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

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

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

  • A:案例演示
    • 数组获取最值(获取数组中的最大值最小值) 这里写图片描述

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

  • A:案例演示
    • 数组元素反转(就是把元素对调)

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

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

    • a:以下格式也可以表示二维数组
      • 1:数据类型 数组名[][] = new 数据类型[m][n];
      • 2:数据类型[] 数组名[] = new 数据类型[m][n];
    • B:注意下面定义的区别
      <span style="font-size:14px;">int x;
      int y;
      int x,y;
      
      int[] x;
      int[] y[];
      
      int[] x,y[];    x是一维数组,y是二维数组
      </span>

  • E:案例演示
    • 定义二维数组,输出二维数组名称,一维数组名称,一个元素
      这里写图片描述

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

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

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

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

25.15_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
    <span style="font-size:14px;">•看程序写结果,
    
    •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<arr.length; x++) {
            if(arr[x]%2==0) {
                arr[x]*=2;
            }
        }
    
    
    </span>

 

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

  • A:案例演示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值