java - 当类不是真实的时,如何在类中创建变量?

标签 java oop

我读过类是创建对象的模型,物理上不存在,而对象是真实的。但是我们是在类中创建变量,甚至是在操纵它们。

  1. 当类在物理上不存在时,这怎么可能呢?

  2. 什么时候为这些变量创建内存?

  3. 为这些变量创建的内存在哪里?

最佳答案

如果您指的是静态类变量,则在使用该类之前,它们必须被初始化,并且类中的任何静态初始化代码都必须运行。确切的时间,没有指定 IIRC,不同的 JVM 可能会在不同的时间执行。它们基本上与具有全局变量的语言中的全局变量相同。

所以重申一下:静态的东西存在并且在第一次使用之前被初始化。 JVM 实现会负责这一点。

但是有一个对象:类对象的实例,它是class Class的子类。 .


补充:事实上,在 Java 中,类的存在是如此具体,以至于它们可以被序列化,通过网络传输到不同的 JVM,在那里反序列化,类的对象在那里创建并执行代码。这方面的简单示例是在浏览器中运行的原始 Java 小程序。另一个例子是 Jenkins/Hudson CI 系统中的从节点,从节点程序非常小,只包含接收、反序列化和实例化类和这些类的对象的代码,这些类和对象由它们连接到的主服务器发送。

关于java - 当类不是真实的时,如何在类中创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119098/

相关文章:

java - 如何从偶数 {2,4,6,8,10,14} 中找到缺失的数字

javascript - javascript call() 和 apply() 通过实现的区别

oop - 在 Perl 6 中继承私有(private)属性

java - 在类范围的下一行初始化变量时出错

c# - 防止任何子类覆盖/隐藏方法 c#;为父类(super class)保留方法签名

c++ - 通过引用调用类对象的二维数组

java - 这个java程序是如何工作的?

java - 生成小的 ascii 字符串列表

java - JSON 响应中的重复字段

java - 支持文本提取的 PDF 查看器 Eclipse 插件/库