Java 如何初始化
初始化基本数据类型
在Java中,基本数据类型(如int, double, boolean等)可以直接赋值初始化。未显式初始化时,成员变量会赋予默认值(如int默认为0),而局部变量必须手动初始化。
示例:
int num = 10; // 显式初始化
double price; // 成员变量默认0.0
boolean flag = true; // 布尔类型初始化
初始化数组
数组可以通过new关键字或直接赋值初始化。
静态初始化(直接赋值):
int[] arr1 = {1, 2, 3};
String[] names = {"Alice", "Bob"};
动态初始化(指定长度):
int[] arr2 = new int[3]; // 默认值{0, 0, 0}
String[] arr3 = new String[2]; // 默认值{null, null}
初始化对象
对象通过构造方法初始化,可以结合new关键字调用构造器。
示例:
class Person {
String name;
Person(String n) { this.name = n; }
}
Person p = new Person("Tom"); // 调用构造器初始化
初始化集合(List/Set/Map)
Java集合类(如ArrayList, HashMap)通常通过构造方法或工厂方法初始化。
List初始化:
List<String> list1 = new ArrayList<>(); // 空列表
List<Integer> list2 = Arrays.asList(1, 2, 3); // 快速初始化(不可变)
Map初始化(Java 9+):
Map<String, Integer> map = Map.of("a", 1, "b", 2); // 不可变Map
静态代码块初始化
类加载时执行静态代码块,适合初始化静态变量或复杂逻辑。
示例:
class Config {
static String env;
static {
env = System.getenv("APP_ENV"); // 从环境变量读取
}
}
实例初始化块
在对象构造时执行,用于统一初始化逻辑(多个构造器共享)。
示例:
class Widget {
{ System.out.println("实例初始化块"); } // 每次new时执行
}
默认值与显式初始化
- 成员变量:未初始化时赋予默认值(如
int为0,对象为null)。 - 局部变量:必须显式初始化,否则编译报错。
对比示例:

class Example {
int memberVar; // 默认0
void method() {
int localVar; // 编译错误,未初始化
}
}






