Java数组应优先用int[] arr声明,避免C风格;已知元素时用{...}静态初始化,仅知长度时用new int[n]动态初始化,避免声明与初始化分离。

Java数组声明与初始化看似简单,但写法选择直接影响可读性、维护性和潜在错误。关键不是“怎么写都行”,而是根据上下文选最稳妥、最明确的方式。
优先用 int[] arr 形式声明
这是Java官方推荐的写法,语义清晰:类型是“int数组”,变量名是arr。避免使用 int arr[] 这种C风格写法,它容易让人误解为“arr是int类型,带[]修饰”,尤其在多维数组或复杂声明中易出错。
已知全部元素时,直接用静态初始化
如果编译期就能确定所有值,比如配置项、状态码列表、测试数据等,就用最简洁的形式:
- int[] codes = {200, 404, 500};
- String[] roles = {"admin", "user", "guest"};
这种写法由编译器自动推断长度,不易出错;也不建议混用完整形式 new int[]{...}——除非要传给方法作匿名数组参数。
立即学习“Java免费学习笔记(深入)”;
仅知长度、不知具体值时,用动态初始化
比如缓存缓冲区、待填充的计算结果、从外部读取前的占位结构:
- byte[] buffer = new byte[1024];(默认全0)
- String[] names = new String[10];(默认全null)
注意:动态初始化后,数组长度固定不可变;元素按类型自动设默认值(基本类型为0/false,引用类型为null),无需手动循环赋初值。
避免声明与初始化分离的“空悬引用”
像 int[] arr; 单独声明后长期不初始化,容易引发 NullPointerException。除非有明确理由(如依赖注入、条件分支延迟创建),否则应尽量做到声明即初始化,或至少在首次使用前完成实例化。
不复杂但容易忽略。


















