最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
静态变量是有顺序的!
时间:2008-04-28 编辑:简简单单 来源:一聚教程网
有人问过我,下面这个打印结果为什么是0
public class MyClass
{
private static int x = getValue();
private static int y = 5;
private static int getValue()
{
return y;
}
public static void main(String args[])
{
System.out.println(x);
}
}
在执行x初始化的时候,这个时候y并没有初始化 。
开始的时候x和y不都是静态变量吗?那不是一开始就要加载进静态代码区的吗?
如果你对JVM很了解,你会知道当JVM执行class类的时候,会先初始化成员变量,执行顺序为从上向下执行,所以会先初始化X,当初始化X的时候,发现调用了getValue()方法,而这个时候y其实是没有初始化的,所以这个时候会返回一个0
所以证明:静态变量也有顺序的!
-
上一个: web开发的珍藏代码积累
-
下一个: 有点问题的代码
相关文章
- 浅谈virtual、abstract方法和静态方法、静态变量理解 04-19
- java static 静态变量初始化 06-04
- c static静态变量用法 05-06
- 把静态变量作为Cache使用 03-12
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24