[code=Java]class A
{
int a; //分配在堆内存??
static int b; //分配在静态存储区??
public void m()
{
int c; //分配在堆栈??
static int d; //分配在静态存储区??(非法的表达式开始??出错了??)
}
}code]
{
int a; //分配在堆内存??
static int b; //分配在静态存储区??
public void m()
{
int c; //分配在堆栈??
static int d; //分配在静态存储区??(非法的表达式开始??出错了??)
}
}code]
{
int a; //分配在栈
static int b; //分配在静态存储区
public void m()
{
int c; //分配在栈
static int d; //分配在静态存储区??(这个要赋值。。如果在方法外。他会给你一个defalut值。)
}
}
{
int a; //分配在堆内存?? ------------>分配在栈里
static int b; //分配在静态存储区?? ------------->数据区
public void m()
{
int c; //分配在堆栈?? ----------------->分配在栈里
static int d; //分配在静态存储区??(非法的表达式开始??出错了??) ---->局部变量,还是静态的,要赋初值,在方法外的话,会自动赋初值
}
}
类产生的对象都在堆内存里吗???
那么类的静态数据域就应该在堆里,而不是栈里。
class A
{
int a; //分配在栈 》》》》改成堆内存才对,是不是??
static int b; //分配在静态存储区
public void m()
{
int c; //分配在栈
static int d; //分配在静态存储区??(这个要赋值。。如果在方法外。他会给你一个defalut值。)
}
}
临时变量是分配在栈中的。
当一个类被初始化的时候系统会给没赋值的变量一个初始值0;对象的话就是null。