我读过类是创建对象的模型,物理上不存在,而对象是真实的。但是我们是在类中创建变量,甚至是在操纵它们。
当类在物理上不存在时,这怎么可能呢?
什么时候为这些变量创建内存?
为这些变量创建的内存在哪里?
最佳答案
如果您指的是静态类变量,则在使用该类之前,它们必须被初始化,并且类中的任何静态初始化代码都必须运行。确切的时间,没有指定 IIRC,不同的 JVM 可能会在不同的时间执行。它们基本上与具有全局变量的语言中的全局变量相同。
所以重申一下:静态的东西存在并且在第一次使用之前被初始化。 JVM 实现会负责这一点。
但是有一个对象:类对象的实例,它是class Class的子类。 .
补充:事实上,在 Java 中,类的存在是如此具体,以至于它们可以被序列化,通过网络传输到不同的 JVM,在那里反序列化,类的对象在那里创建并执行代码。这方面的简单示例是在浏览器中运行的原始 Java 小程序。另一个例子是 Jenkins/Hudson CI 系统中的从节点,从节点程序非常小,只包含接收、反序列化和实例化类和这些类的对象的代码,这些类和对象由它们连接到的主服务器发送。
关于java - 当类不是真实的时,如何在类中创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119098/