数组

作者: hey_leex | 来源:发表于2017-11-25 08:51 被阅读0次

    数组

    1. 数组时一个存储数据的容器
    2. 是在内存中开辟一块连续的内存空间,用来存储一类相同类型的数据。
    3. 数组是引用数据类型
    4. 数组是定长的,再被创建的时候,能存几个数据就已经确定了

    数组的声明

    1. 数据类型 数组名[] = new 数据类型[长度]

    2. 数据类型[] 数组名 = new 数据类型[长度]

    3. 数据类型 数组名[] = null;

      数组名 = new 数组类型[长度]

      • 声明后的数组有默认值int 默认0

    数组的初始化

    静态初始化

    数据类型 数组名[] = {值,值,值,...};

    数据类型 数组名[] = new 数据类型{值,值,值,...}

    • Java中的数组必须先初始化,然后才能使用。
    • 初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
        //错误的写法
        int[] arr = new int[3] {1,2,3};
        error:Cannot define dimension expressions when an array initializer is provided
        ------------------
        int arr[];
        arr = {12,3,5};
        error:Array constants can only be used in initializers
    

    二维数组

    数据类型[][] 变量名 = new 数据类型[m][n];

    数据类型[][] 变量名 = new 数据类型[m][];

    数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

    数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

    数组的访问

    1. 数组是通过下标访问的
    2. 以0开始,最后一个元素是arr.length-1

    内存分析

    image
    int arr1[] = {4,8,1};
    int arr2[] = arr1;
    arr2[1] = 100;
    System.out.println(arr1[1]);
    
    输出
    100
    

    数组操作常见错误

    1. 数组索引越界

      ArrayIndexOutOfBoundsException

      访问到了数组中的不存在的索引时发生。

    2. 空指针异常

      NullPointerException

      数组引用没有指向实体,却在操作实体中的元素时。

    3. 试图创建长度为负的数组

      NegativeArraySizeException

    .length

    返回数组长度,注意没有括号

    int i[] = {32,2,343,89,7654,234};
    int length = i.length;
    //如果不接受返回值
    //error:Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration
    

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/ftiqbxtx.html