看看下面的代码 输出啥呢
package cn.lifx.test;
public class Test2
{
public static void main(String[] args)
{
Test2 t = new Test2();
t.AA();
BB();
t.CC();
}
public void AA()
{
static int a = 2;
public int b = 3;
System.out.println(a);
System.out.println(b);
}
public static void BB()
{
static int s = 0;
System.out.println(s);
}
public void CC()
{
final int c = 4;
System.out.println(c);
}
}
编译就出错了,为啥呢?唉,挺基础的东西,要我做还真做不对,基础不扎实啊!因为:
局部变量不能被static、private、protected、public等修饰符修饰,但可以被final修饰符修饰。
另外,总结一下:
1. 静态变量位于方法区,生命周期取决于类何时被加载及卸载。
2. 实例变量位于堆区,生命周期取决于实例何时被创建及销毁。
3. 局部变量位于栈区,生命周期取决于所属的方法合适被调用及结束调用。