在Java中的哪里初始化静态字段?

用户名

我有几个类,其中一个需要计算创建对象的次数(称为lastId的int字段)。在c ++中,我们必须在主类中初始化静态字段值,然后才能在其他类中正确使用该静态字段并计算已创建的对象数量。Java呢?我必须在哪里初始化静态字段值。另外,我知道如何计算对象是否已创建,但是如果对象已删除怎么办?Java中没有析构函数,那么如何完成此工作?

彼得·劳瑞

如果您只想计算类型调用活动对象

jps -lvm  # to find the pid of your process
jmap -histo {pid} # count all objects in the system

或者

jmap -histo:live {pid} # count objects referenced

这将按类为您提供实例数量的计数。

如果您想可视化您的应用程序正在做什么,请尝试

jvisualvm

这将提供诸如已用内存,线程等的统计信息,以及有关此处正在消耗CPU以及创建哪些对象的故障的统计信息。


Java呢?

您只需用类似的方法初始化它们

static int counter = 0;

我必须在哪里初始化静态字段值。

您将在同一位置初始化其他任何字段。

顺便说一句,如果你只是这样做

static int counter;

无论如何,默认情况下它将是0,所以我怀疑您不需要初始化它。

如果对象已删除怎么办?

这很容易,因为您无法删除对象。因此,答案始终为0。

Java中没有析构函数,那么如何完成此工作?

Java没有这样的东西,所以这个问题是毫无意义的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java枚举中的静态(和最终)字段初始化

来自分类Dev

在Unity中哪里可以初始化静态变量?

来自分类Dev

Java静态最终字段初始化顺序

来自分类Dev

在构造函数中初始化静态字段

来自分类Dev

无法在构造函数中初始化静态final字段

来自分类Dev

类中的静态字段初始化序列

来自分类Dev

在构造函数中初始化静态字段

来自分类Dev

Java:静态初始化

来自分类Dev

静态字段初始化器

来自分类Dev

JUnit静态字段的初始化

来自分类Dev

静态字段初始化顺序

来自分类Dev

静态只读字段的初始化顺序

来自分类Dev

静态字段初始化顺序

来自分类Dev

关键字'this'在静态属性,静态方法或静态字段初始化程序中无效

来自分类Dev

从Haxe中静态字段的静态初始化访问非静态数据

来自分类Dev

在Java中初始化静态变量

来自分类Dev

Java中类加载时静态方法的初始化

来自分类Dev

Java中静态变量的初始化

来自分类Dev

使用Reflection时Java中奇怪的静态初始化

来自分类Dev

单例类的 Java 静态初始化中的死锁

来自分类Dev

如何在 Java 中静态初始化对象数组

来自分类Dev

如何防止静态方法中静态字段的多次初始化?

来自分类Dev

非最终静态字段的静态初始化安全吗?

来自分类Dev

字段初始化程序无法引用非静态字段

来自分类Dev

Java静态初始化顺序

来自分类Dev

在Java中初始化ArrayList字段的最佳实践

来自分类Dev

Java中的字段初始化(如C#)

来自分类Dev

使用spring初始化java枚举中的字段

来自分类Dev

使用spring初始化java枚举中的字段