java基本类型数组初始化分静态和动态两种:静态初始化在声明时用花括号赋值,编译器推断长度;动态初始化用new指定长度,元素自动赋予类型默认值,length属性恒定反映分配长度。

Java 中基本类型数组初始化主要分静态和动态两种方式,核心区别在于元素值是否在声明时就确定,以及内存分配时机。
静态初始化:适合已知全部值的场景
直接用花括号列出所有元素,编译器自动推断长度,代码简洁、意图清晰:
-
推荐写法:
int[] nums = {10, 20, 30};—— 类型与方括号紧邻,语义明确 -
等效写法(显式 new):
double[] prices = new double[]{99.9, 199.5, 29.8};—— 多用于方法传参或需强调对象创建时 -
注意:不能拆成两步,
int[] a; a = {1,2,3};会编译失败;也不能写成new int[3]{1,2,3},语法错误
动态初始化:适合运行时确定长度的场景
先用 new 分配指定长度的内存,元素按类型自动赋予默认值,后续再赋值:
-
int[] data = new int[5];→ 所有元素默认为 0 -
boolean[] flags = new boolean[3];→ 所有元素默认为 false -
char[] chars = new char[4];→ 所有元素默认为 '\u0000'(空字符) -
double[] values = new double[2];→ 所有元素默认为 0.0
关键细节:默认值不是“未设置”,而是真实初始值
基本类型数组不会出现 null,所以访问前无需判空,但要注意逻辑陷阱:
-
int[] arr = new int[3];后,arr[0] == 0是成立的,但 0 可能是有效业务数据,不能单靠它判断“是否已赋值” - 不要用
==判断浮点数组元素是否“未初始化”,因为0.0是合法值,也可能是计算结果 - 数组长度由
length属性固定,哪怕所有元素都是默认值,arr.length仍准确返回初始分配长度
声明风格建议
统一使用 int[] arr 而非 int arr[]。前者更符合 Java 规范,强调“这是一个 int 类型的数组”,避免 C 风格带来的理解偏差。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











