# 数组

> 原文： [https://docs.oracle.com/javase/tutorial/reflect/special/array.html](https://docs.oracle.com/javase/tutorial/reflect/special/array.html)

_ 数组 _ 是参考类型的对象，其包含固定数量的相同类型的组件;数组的长度是不可变的。创建数组实例需要了解长度和组件类型。每个组分可以是原始类型（例如`byte`，`int`或`double`），参考类型（例如 [`String`](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html) ， [`Object`](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) 或 [`java.nio.CharBuffer`](https://docs.oracle.com/javase/8/docs/api/java/nio/CharBuffer.html) ）或数组。多维数组实际上只是包含数组类型组件的数组。

数组在 Java 虚拟机中实现。数组上唯一的方法是从 [`Object`](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) 继承的方法。数组的长度不是其类型的一部分;数组有`length`字段，可通过 [`java.lang.reflect.Array.getLength()`](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Array.html#getLength-java.lang.Object-) 访问。

Reflection 提供了访问数组类型和数组组件类型，创建新数组以及检索和设置数组组件值的方法。以下部分包括对数组的常见操作示例：

*   [识别数组类型](arrayComponents.html)描述了如何确定类成员是否是数组类型的字段
*   [创建新数组](arrayInstance.html)说明了如何使用简单和复杂的组件类型创建新的数组实例
*   [获取和设置数组及其组件](arraySetGet.html)显示如何访问类型数组的字段并单独访问数组元素
*   [故障排除](arrayTrouble.html)涵盖常见错误和编程误解

所有这些操作都通过 [`java.lang.reflect.Array`](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Array.html) 中的`static`方法支持。