Java-声明全局变量并使用值进行初始化时,在创建对象时会发生什么?

问题描述 投票:0回答:1

当声明全局变量并用值初始化时,然后在创建类的对象时,是否再次初始化全局变量并获得新的内存?

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 memory-management
1个回答
0
投票

当声明全局变量并用值初始化时...

您显示的不是全局变量。真正的全局变量在Java中不存在。 aA实例字段

这将以值10存储在内存地址a中。

a不是内存地址,它只是字段的名称。您很少需要处理低级内容,例如Java中的内存地址。

但是当我创建类A的对象时,a是否再次被初始化?

在创建实例之前,没有为a字段分配任何内存,除了可能存储已编译的类文件本身。一旦创建了A的实例,内存中就会有一个存储值10的位置,该值对应于该实例的a字段。

但是,如果您创建Asecond实例,它会再次初始化。

© www.soinside.com 2019 - 2024. All rights reserved.