JAVA 数组的初始化

版权声明:本文为博主原创文章,未经博主允许可以转载,但请保留原文链接。 https://blog.csdn.net/tmdlife/article/details/51745765

本页面更新日期: 2016年06月23日

java 语言中, 数组必需初始化之后才可以使用.
那么什么是初始化? 就是为数组的 数组元素 分配内存空间, 并为每个数组元素赋初始值.

数组的初始化有如下两种方式:

  • 静态初始化: 初始化时由程序员显式指定 每个数组元素的初始值, 由系统决定数组长度.
  • 动态初始化: 初始化时程序员只指定数组长度, 由系统为数组元素分配初始值.

静态初始化

语法如下:

arrayName = new type[] {element1, element2, element3......};

在上面的语法格式中, type 就是数组元素的数据类型. 此处的 type 必需与之前定义数组变量时所使用的 type 相同. 也可以是定义数组时所指定的 type 的子类.
并使用花括号 {} 把所有的数组元素括起来, 多个数组元素之间用英文逗号 , 隔开.
举例说明:

public class ArrayTest
{
  public static void main(String[] args)
  {
    //定义一个 int 数组类型的变量, 变量名为 intArr
    int[] intArr;
    //使用静态初始化, 初始化数组时只指定数组元素的初始值, 不指定数组长度.
    intArr = new int[]{5, 6, 8, 9};

    //定义一个 Object 数组类型的变量, 变量名为 objArr
    Object[] objArr;
    //使用静态初始化, 初始化数组时 数组元素的类型是 定义数组时所指定的数组元素类型的子类.
    objArr = new String[]{"hello", "java"};
  }
}

因为 java 语言是面向对象的编程语言, 能很好的支持 子类 和 父类 的继承关系.
子类实例是一种特殊的父类实例.
在上面的程序中, String 类型是 Object 类型的子类, 即字符串是一种特殊的 Object 实例.
关于继承的内容, 以后我们会讲到. 现在你只需要有个印象即可.

在实际开发中, 我们可能会习惯将 数组的定义和初始化同时完成.
那么我们可以简写成如下格式:

int[] intArray = {5, 6, 7, 8};

动态初始化

动态初始化只指定数组的长度, 由系统为每个数组元素指定 初始值.
语法如下:

arrayName = new type[length];

在上面语法中, length参数 就是在指定 数组的长度, 也就是可以容纳数组元素的个数.
举栗说明:

//数组定义和初始化同时完成, 使用动态初始化语法
int[] prices = new int[5];

//初始化数组时, 元素的类型是定义数组时元素类型的子类.
Object[] books = new String[4];

执行动态初始化时, 程序员只需要指定数组的长度即可. 即为每个数组元素指定所需的内存空间..
系统将负责为这些 数组元素分配初始值.
系统将按如下规则分配初始值.

  • 基本类型中的 整数类型 (byte, short, int, long) 则数组元素的值是 0
  • 基本类型中的 浮点类型 (float, double) 则数组元素的值是 0.0
  • 基本类型中的 字符类型 (char) 则数组元素的值是 ‘\u0000’
  • 基本类型中的 布尔类型 (boolean) 则数组元素的值是 false
  • 引用类型 (类, 接口, 数组) 则数组元素的值是 null

注意: 不要 同时使用静态初始化和动态初始化 .
也就是说, 不要在数组初始化时, 既指定数组的长度, 也为每个数组元素分配初始值.

数组初始化之后, 就可以使用数组了, 包括为 数组元素赋值, 访问数组元素的值 和 获取数组长度等等.

结尾

如果你想学习更多JAVA知识, 可以 点我进入目录页

猜你喜欢

转载自blog.csdn.net/tmdlife/article/details/51745765