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

java是怎么给变量分配内存的?
Java code
public class Initialization 
{  
    int a;  
    char b;  
    short s;  
    float f;  
    long lo;  
    double dou;  
    byte e;  
    boolean flag;  
           Object obj;  
  
    public static void main(String [] args){  
        Initialization init = new Initialization();  
     //   init.print();  //为什么这样可以执行,?
        System.out.println("int a="+a); //而这样就不可以?java是怎么给变量分配内存的?
    }  
  
    public void print()
    {  
        System.out.println("int a="+a);  
    }  

}


------解决方案--------------------
main是静态方法,在main里无法直接引用具体对象的成员a,只能写成init.a的形式。
------解决方案--------------------
因为a不是静态的

静态方法里使用必须是静态成员变量

我猜测你的本意应该是用 System.out.println("int a=" + init.a);
------解决方案--------------------
非静态成员当然不能用在静态中,将a声明为static int a 就行了