gpt4 book ai didi

java - 为什么实例变量在java中有默认值?

转载 作者:IT老高 更新时间:2023-10-28 20:41:48 35 4
gpt4 key购买 nike

为什么在类中声明的变量有默认值,而在方法中声明的变量,称为“局部变量”,在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);
}
}

在上面的示例中,变量 a 的默认值为 0,但变量 b 给出了它可能尚未初始化的错误。

最佳答案

所有成员变量都必须加载到堆中,因此在创建类实例时必须使用默认值进行初始化。在局部变量的情况下,它们不会被加载到堆中,它们会存储在堆栈中,直到它们在 java 7 之前被使用,所以我们需要显式地初始化它们。现在“Java Hotspot Server Compiler”执行“逃逸分析”并决定在堆栈而不是堆上分配一些变量。

关于java - 为什么实例变量在java中有默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226405/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com