数组知识点补充

Java复习之路-数组知识点补充-day05

数组知识点补充

  1. 数组格式:
    数组定义格式
    数据类型[] 数组名 = new 数据类型[数组的长度];
int[] arr = new int[5];
  1. 数组初始化:
  • a:动态初始化 只指定长度,由系统给出初始化值
    int[] arr = new int[5];
    补充:
    • 整数类型:byte, short, int ,long 默认初始化值都是0
    • 浮点类型:float, double 默认初始化值都是0.0
    • 布尔类型:boolean默认初始化值false
    • 字符类型:char默认初始化值’\u0000’
      打印arr的值为:[I@19bb25a
      其中:
      • [代表是数组,几个代表几维
      • I代表int类型
      • @是固定的
      • 19bb25a代表十六进制的地址值
  • b:静态初始化 给出初始化值,由系统决定长度
    一维:int[] arr = {1, 23, 4, 5, 5, 7};
    二维:int[][] arr = {{12, 4, 45,6}, {234, 34, 123}, {23, 345, 56, 456, 65}};
  1. Java中的内存分配以及栈和堆的区别
    在这里插入图片描述
  2. 数组的操作
  • arr.length代表数组的长度,不是arr.length();
  • 获取最值
    • 简单来说方法就是写个函数,然后将初始max作为arr[0],然后一个个比较
public static int getMax(int[] arr){
    int max = arr[0]; // 不能将初始max设为0,要设为数组本身的值
    for (int i = 1; i < arr.length; i ++){ // 从数组的第二个元素开始比较。当然假设arr.length > 1
        if (max < arr[i]){
            max = arr[i];
        }
    }
    return max;
}
  • 数组的反转
public static void reverseArray(int[] arr){
    for (int i = 0; i < arr.length; i ++) {
        int temp = arr[i];
        arr[i] = arr[arr.length - 1 - i];
        arr[arr.length - 1 - i] = temp;
    }
}
  1. 二维数组
  • 格式:
    • 数据类型 数组名[][] = new 数据类型[m][n];
      例如:int[][] arr = new int[3][2]
    • 数据类型[] 数组名[] = new 数据类型[m][n];
  • 注意下面定义的区别:
    • int x;
    • int y;
    • int x,y;
    • int[] x;
    • int[] y[];
    • int[] x, y[]; // x是一维数组,y是二维数组
  1. 二维数组的初始值为null
    二维数组里的一维数组未被初始化时里面的值为null,只有给每个一维数组分配一维数组后在会有初始值。
    int[][] arr = new int [3][]这是一个二维数组,这个二维数组中有三个一维数组,三个一维数组都没有被赋值。
    如图:
    在这里插入图片描述
    如果
  2. 二维数组静态初始化
  • A:二维数组格式3
    • int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
  • B:二维数组格式3的解释
  • C:案例演示
    • 讲解格式,输出数据,并画内存图
      650ba5297e4214e699d704b1d460e4dc.png
  1. 二维数组参数传递的问题及图解需要注意的点
  • 基本数据类型的值传递,不改变原值,因为基本类型的数据都存储在栈中,不涉及堆。在调用后就会弹栈,局部变量随之消失。具体如下代码所示:
    94976b8cc21df846c415ffc34bf732e6.png
  • 引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内存数组对象还在,但是对内存数组对象还在,可以通过地址继续访问。具体代码及图如下所示:
    183bcf2dd625609c1ba31b7adcdc535b.png
  • 注:本文整理自传智播客视频及其提供文档,手码,若有错误,希望大家指出(轻喷),共同学习。目的是便于个人复习,后来考虑到如果有其他同学也想复习,也想跟大家分享。不过毕竟本文整理自其他资料,若有侵权,请私信联系我,删。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值