当声明全局变量并用值初始化时,然后在创建类的对象时,是否再次初始化全局变量并获得新的内存?
class A{
int a = 10;
}
这将以值a
存储在存储器地址10
中。但是,当我创建A类的对象时,a是否会再次初始化?
class A{
int a = 10;
public static void main(String args[]){
A a = new A();
}
当声明全局变量并用值初始化时...
您显示的不是全局变量。真正的全局变量在Java中不存在。 a
是A
的实例字段。
这将以值10存储在内存地址a中。
a
不是内存地址,它只是字段的名称。您很少需要处理低级内容,例如Java中的内存地址。
但是当我创建类A的对象时,a是否再次被初始化?
在创建实例之前,没有为a
字段分配任何内存,除了可能存储已编译的类文件本身。一旦创建了A
的实例,内存中就会有一个存储值10
的位置,该值对应于该实例的a
字段。
但是,如果您创建A
的second实例,它会再次初始化。