请问:
看下面这个程序:
class A
{
public int abc(int i,int j)
{
return (i+j);
}
public static void main(String[]args)
{
A a = new a();
System.out.println(a.abc(2,3));
}
}
在这个程序执行a.abc(2,3)的时候 程序会跳转到public int abc(int i,int j)方法 把实参(2,3)赋给形参(int i ,int j)
那么
1,是不是这时才给i和j分配内存呢 而刚开始创建对象a的时候并没有给i和j分配内存呢
2,是不是创建对象的时候只是给构造函数中的成员变量,数组分配内存空间呢 其他的成员在需要用的时候才分配内存空间 而对于静态变量(包括静态方法中的变量)在装载类的时候就分配内存空间了
看下面这个程序:
class A
{
public int abc(int i,int j)
{
return (i+j);
}
public static void main(String[]args)
{
A a = new a();
System.out.println(a.abc(2,3));
}
}
在这个程序执行a.abc(2,3)的时候 程序会跳转到public int abc(int i,int j)方法 把实参(2,3)赋给形参(int i ,int j)
那么
1,是不是这时才给i和j分配内存呢 而刚开始创建对象a的时候并没有给i和j分配内存呢
2,是不是创建对象的时候只是给构造函数中的成员变量,数组分配内存空间呢 其他的成员在需要用的时候才分配内存空间 而对于静态变量(包括静态方法中的变量)在装载类的时候就分配内存空间了
2.同上;“而对于静态变量(包括静态方法中的变量)在装载类的时候就分配内存空间了”这句话是正确的
2。类中的成员变量是在你new一个新的对象时在会分配内存,而对于静态变量是在你加载该类的时候就已经分配了内存,对于静态方法则是在你调用到是才会被加载
当声明的时候不分配空间,比如A a;
当new的时候分配,比如a = new A();
是不是这样?
new时才分配