Java数组初始化后可通过索引直接赋值修改元素,长度固定但元素值可随时更新;索引须在[0, length-1]范围内,类型需兼容;引用类型数组既可替换引用,也可修改对象内部状态(String等不可变类除外);支持循环或条件逻辑批量修改;不可扩容,null对引用类型合法。

Java 中数组初始化后,可以直接通过索引赋值来动态修改指定位置的元素,这是数组的基本特性之一——支持随机访问和原地更新。
只要数组已创建(无论用哪种方式初始化),它的长度就固定了,但每个元素的值可以随时重新赋值。
直接用索引下标赋值
这是最常用、最直接的方式。语法为:数组名[索引] = 新值;
int[] arr = {1, 2, 3, 4, 5}; // 初始化
arr[2] = 99; // 修改索引 2 处的值(原为 3,现为 99)
System.out.println(arr[2]); // 输出 99
注意:
- 索引必须在
[0, length - 1]范围内,越界会抛出ArrayIndexOutOfBoundsException - 类型必须兼容,比如
String[]只能赋String或null
修改引用类型数组中的对象内容(非替换引用)
如果数组元素是引用类型(如 String[]、Person[]),有两种修改逻辑:
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
-
替换整个引用:
arr[i] = new Person("张三"); -
修改对象内部状态(前提是对象可变):
Person[] people = new Person[1]; people[0] = new Person("李四"); people[0].setName("王五"); // 修改对象属性,不改变数组中存储的引用
⚠️ 注意:String 是不可变类,所以 strArr[0] += "abc" 实际是生成新字符串并重新赋值给 strArr[0],本质仍是引用替换。
使用循环或条件逻辑批量/条件修改
适合根据规则更新多个位置:
int[] scores = {85, 92, 78, 96, 88};
// 给所有低于 90 的分数加 5 分
for (int i = 0; i <p>也可结合 <code>if</code>、<code>switch</code> 或方法封装做更复杂的逻辑判断后再赋值。</p><hr><h3>常见误区提醒</h3>
- 数组长度不可变,不能通过
arr[5] = 10来“扩容”——这会报错 -
null是合法值,对引用类型数组可显式设为arr[i] = null - 基本类型数组默认初始化为对应零值(如
int为0,boolean为false),之后均可覆盖
不复杂但容易忽略。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










