java 静态块

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:29:51
高手解析下这段代码。这里用静态块有什么用途 另外 For循环的用处何在?
private static Map areaMap=new HashMap();
static{
for(int i=0;i<5;i++){
areaMap.put(1, "芙蓉区");
areaMap.put(2, "红旗区");
areaMap.put(3, "雨花区");
areaMap.put(4, "开福区");
areaMap.put(5, "岳麓区");
}

一楼说法不正确。
static 块的初始化是在类被装入内存时就执行了的。想想main方法为什么是静态的就知道了。
它就是为了在程序运行之前就将HashMap初始化了

for循环是为areaMap循环赋值

为了初始化areaMap,for循环在这里没用

二楼的说法很正确 一楼的错误

定义一个静态的 areaMap,在类初始化的时候就会创建,
又定义一个静态块 在静态块中给areaMap赋值,
在应用程序中就可以直接使用areaMap的值了
静态的只执行一次~~无论创建多少个类对象,它只执行一次