-1

我的意思是,我有一个 A 类,并且我有一个 A 数组作为 A 类的静态数据成员。这是一种不好的做法吗?

4

1 回答 1

1

在 Java 中,它会导致内存泄漏......除非你用终结器或Reference对象做一些混乱和复杂的事情。

如果您的目标是保留所有已创建实例的集合,则需要非常小心! 无论您如何实现它,创建的所有实例的集合都会泄漏内存。(只有当泄漏是有界的,或者小到在整个应用程序的上下文中无关紧要时,这才是真正可以接受的。)

如果您的目标是保留现有实例的缓存以(例如)以抵消一些特别大的对象创建/初始化开销,那么您应该使用一个WeakHashMap或现有的 3rd-party 缓存类,而不是尝试使用数组从头开始实现它.

于 2012-11-13T23:30:49.697 回答