java一维数组创建初始化有new动态和{}静态两种方式,长度通过length属性获取而非方法;声明未初始化访问length会报错或空指针,长度不可变,动态需求应选arraylist。

Java 中创建和初始化一维数组很简单,获取长度也只需一个属性,但细节上容易出错,比如混淆声明方式、忘记 new 或误用 length 方法。
声明并创建数组(使用 new)
先声明数组类型和变量名,再用 new 分配内存空间,最后可选地赋初值:
- 语法:数据类型[] 数组名 = new 数据类型[长度];
- 例如:int[] nums = new int[5]; —— 创建含 5 个默认为 0 的 int 元素的数组
- 字符串数组:String[] names = new String[3]; —— 每个元素初始为 null
声明+初始化一步完成(静态初始化)
适合已知所有元素值的情况,编译器自动推断长度:
- 语法:数据类型[] 数组名 = {值1, 值2, ..., 值n};
- 例如:double[] scores = {89.5, 92.0, 78.5}; —— 长度自动为 3
- 注意:不能写成 int[] arr = new int[]{1,2,3};(虽合法但冗余),更常用的是直接大括号形式
获取数组长度
所有数组都有一个 length 属性(不是方法!不带括号),返回元素个数:
- int len = nums.length; —— 对任何一维数组都适用
- 它反映的是创建时指定的容量(new 方式)或元素个数({} 方式),与内容是否为空无关
- 常见错误:调用 nums.length()(报错)或用于 null 数组(抛 NullPointerException)
常见组合写法与注意事项
实际编码中常混合使用,需留意初始化时机和空指针风险:
- 声明后未初始化就访问 length → 编译错误(局部变量)或运行时 null 异常(成员变量未赋值)
- 支持链式写法:int len = new int[]{1,2,3}.length;(结果为 3)
- 数组长度一旦确定不可改变;如需动态大小,应改用 ArrayList 等集合类
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











