java 数组的创建与分析
发布日期:2021-05-14 00:01:39 浏览次数:22 分类:精选文章

本文共 1817 字,大约阅读时间需要 6 分钟。

Java数组的创建与引用传递

一、数组的创建

数组在Java中是一个非常基础的数据结构,常见于存储一系列的

相同类型的值。数组的创建方式可以分为静态初始化和动态初始化两种。

1. 静态初始化

静态初始化是指在定义数组的同时为其分配内存并赋值。这种方式最为直接且简便。常用的写法有以下两种:

int[] arr = new int[]{3, 9, 8};  // 或者int[] arr = {3, 9, 8};

在这里,new int[] {3, 9, 8} 这部分表示先分配一个长度为3的整数数组内存,并将数组元素初始化为3、9、8。而使用大括号 {3, 9, 8} 的方法也是一个更简洁的写法。

2. 动态初始化

动态初始化则是在声明数组之后,通过新建操作符 new 分配内存, Url{但是这一动作再加上手动赋值数组元素的步骤。具体方式有以下两个:

int[] arr2 = new int[]{1, 2, 3};  // 静态初始化的另一种写法int[] arr3 = new int[3];           // 动态初始化第一种方式arr3[0] = 1;arr3[1] = 2;arr3[2] = 3;

需要注意的是,在Java中 declarations like int a[5]; 是不允许的,因为默认数组长度无法指定。这一点与Java语言规范一致。

2. 数组的引用传递

当涉及到数组的引用传递时,我们需要理解其内存空间的开辟情况。

1. 内存空间的开辟

使用以下程序可以直观地观察到这一点:

public class ArrayDemo {    public static void main(String args[]) {        int data[] = null;    // 引用类型初始化为null        data = new int[3];   // 分配长度为3的整数数组        data[0] = 10;       // 赋值第一个元素        data[1] = 20;       // 赋值第二个元素        data[2] = 30;       // 赋值第三个元素    }}

在程序运行时,可以看到int data[]首先指向一个null引用。然后调用data = new int[3];,这会在堆内分配一个可容纳3个整数的数组。随后,通过data[0] = 10;等语句对数组中的每个元素进行赋值。

2. 引用传递的图解

以下程序展示了数组引用传递的实际效果:

public class ArrayDemo {    public static void main(String args[]) {        int data[] = null; // 声明一个int数组引用        data = new int[3]; // 分配一个长度为3的int数组        data[0] = 10;     // 给数组的第一个位置赋值        data[1] = 20;     // 给数组的第二个位置赋值        data[2] = 30;     // 给数组的第三个位置赋值        int temp[] = null; // 声称一个新的int数组引用        temp = data;       // 将temp引用指向data数组        temp[0] = 99;      // 修改temp数组的第一个位置        for (int i = 0; i < temp.length; i++) {            System.out.println(data[i]); // 依然打印data数组的内容        }    }}

在这个程序中,temp引用被赋值为data数组的引用。由于数组在内存中存储的实际上是数据的值,因此,对temp[0]进行赋值会反映到data数组中。最终,数据在data数组和temp数组中是相同的。

注意事项

根据Java语言规范,数组在Java中不能以长度声明(如int a[5];这样的写法是不合法的)。

如果需要进一步学习数组的使用,可以参考以下文章中的详细解释:

上一篇:java.lang.ArrayIndexOutOfBoundsException: 0
下一篇:3种方法更改Linux系统的主机名(hostname)

发表评论

最新留言

不错!
[***.144.177.141]2025年05月07日 16时03分46秒