【发布时间】:2017-05-23 05:25:33
【问题描述】:
如果我理解正确,Java 会为每个类创建一些开销。如果我想创建典型的数据结构,例如链表、树、尝试等。单个(列表)项将是类,因此与 C 中的类似数据结构相比,会产生很大的开销。这对于非常大的数据结构来说尤其困难数据集。有没有更好的方法在 Java 中实现这些类型的数据结构,这样我就不会有与在内存中存储类相关的开销?
这里描述了Java 对象的memory consumption。如果我有数百万个对象,使用对象的开销可能会变得太昂贵。所以我想知道是否有更好的方法来处理这种情况。
【问题讨论】:
-
在java集合中,item是相同类型的对象
-
java 有一组非常完善的类和接口...请参阅 java.util.collection,如您所知,在像 C 这样的低级别上不会发生任何事情,因为虚拟机总是在中间
-
定义重大开销
-
您是在问Java 中是否有一个集合是按标准用C/C++/other-low-level-lang 实现的(所有VM 实现都有)?或者如果有特定的实现可以使用?
-
“单个(列表)项将是类,因此与 C 中的类似数据结构相比,会产生很大的开销” ...类加载和对象实例化机制在这一点上,Java 中的 in Java 已经持续开发了数十年,您可以指望它们快速高效。例如,这些设施和垃圾收集器将胜过大多数自滚动对象池(数据库连接等非常昂贵的对象除外)。您选择 Java 正是因为您想要对象抽象的好处,否则您将在 C 级别进行开发。
标签: java memory data-structures