为什么在类中声明的变量具有默认值,但在方法中声明的变量(称为"局部变量")在Java中没有默认值?
例如
class abc
{
int a;
public static void main(String ss[])
{
int b;
abc aa=new abc();
System.out.println(aa.a);
System.out.println(b);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,变量的a默认值为0,但变量b会给出错误,表明它可能尚未初始化.
Ash*_*ani 15
所有成员变量都必须加载到堆中,因此在创建类的实例时必须使用默认值初始化它们.在局部变量的情况下,它们不会被加载到堆中,它们存储在堆栈中,直到它们在java 7之前被使用,因此我们需要显式初始化它们.现在,"Java Hotspot Server Compiler"执行"转义分析",并决定在堆栈而不是堆上分配一些变量.
| 归档时间: |
|
| 查看次数: |
23489 次 |
| 最近记录: |