数组

2017-11-25  本文已影响0人  hey_leex

数组

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

数组的声明

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

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

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

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

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

数组的初始化

静态初始化

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

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

    //错误的写法
    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
上一篇 下一篇

猜你喜欢

热点阅读