【java】声明并创建数组对象

发布于:2025-02-26 ⋅ 阅读:(23) ⋅ 点赞:(0)

1. 声明数组变量

  • 语法类型[] 变量名;
  • 作用:声明一个引用类型变量,用于指向某个数组对象。
  • 示例

    java

    Product[] products;  // 声明一个 Product 类型的数组变量(此时变量未初始化)

2. 创建数组对象

  • 语法new 类型[长度];
  • 作用:在堆内存中分配一个数组对象,长度固定,元素初始值为默认值(引用类型为 null,基本类型为 0false 等)。
  • 示例

    java

    new Product[3];  // 创建一个长度为3的数组对象,每个元素初始化为 null

3. 组合语句(声明 + 初始化)

将声明和创建合并为一条语句:

java

Product[] products = new Product[3]; // 声明并创建一个长度为3的 Product 数组

内存示意图

java

堆内存中的数组对象:
+-------+-------+-------+
| 索引0 | 索引1 | 索引2 | // 初始值均为 null
+-------+-------+-------+
栈内存中的变量 products:
+-------+
| 地址 | → 指向堆内存中的数组对象
+-------+

常见误区

误区1:数组对象包含实际元素

java

// 错误理解:认为 new Product[3] 创建了3个 Product 对象
Product[] products = new Product[3];
// 实际:数组中的元素都是 null,需要单独初始化
products[0] = new Product(...); // 需手动创建对象并赋值
误区2:数组长度可变

java

Product[] products = new Product[3];
products = new Product[5]; // 可以重新指向新数组,但原数组长度不可变

正确使用场景

  1. 声明空数组

    java

    Product[] emptyProducts = new Product[0]; // 空数组
  2. 初始化时赋值

    java

    Product[] products = new Product[] { // 直接初始化元素
    new Product(1, "商品A", 100.50, 10),
    new Product(2, "商品B", 200.75, 20),
    new Product(3, "商品C", 150.25, 15)
    };

总结

  • 语法Product[] products = new Product[3]; 是标准的数组对象声明和初始化方式。
  • 本质:创建了一个长度为3的数组容器,元素需要后续逐个初始化。
  • 关键点:区分数组对象本身数组中存储的对象(数组中存储的是引用)