看了一篇文章 http://wiki.xiaohansong.com/java/class_lifecycle.html
里面说到静态变量的初值为jvm默认的初值,当时感觉很奇怪,想不通为什么,查了一下,找到一篇文章 http://blog.csdn.net/darxin/article/details/5293427
里面有介绍静态变量的初始化过程,简单来说就是
public class Test {
// 静态变量的声明
public static int _i = 10;
}
//上面的代码相当于下面
public class Test {
// 静态变量的声明
public static int _i;
// 静态变量的初始化
static {
_i = 10;
}
}
所以说静态变量的初值为jvm默认的初值,不知道这样理解对不对?知道的朋友请留言说一下,谢谢。