日期:2014-05-20  浏览次数:20809 次

新手求教!
各位大侠帮忙看一下这个小程序,有没有问题,谢谢啦!
public class TestVar{
static int j;
public static void main(String[] args) {
int i = 0;
System.out.println(i);
System.out.println(j);
}
}
请问变量j能够正常输出吗?

------解决方案--------------------
这个J能正常运行,虽然J没有赋值给它,默认情况就是0; j=0 

输出结果:
0
0
------解决方案--------------------
我来回答吧!
首先可以输出,输出是0
你要明白为什么输出0.你首先要明白static的意义。
static int a 和 int b 
有什么区别?
区别就在加载顺序上!这个涉及到栈的概念!变量都是存在栈中 
static int a 也就是静态变量!加载在这个类之前!也就是说。在这个类开始前。系统就为a分配了一段空间!但是不能平白无辜就说,我占用了这段内存资源!在计算机里,机器就会默认分配00 00去占这段内存。一个int 4个字节。内存中就是00 00
int b 是在程序运行到这一句 也就是第4句。才会被加载!才会分配空间
------解决方案--------------------
都默认的是0