在实例化类时,类定义中的方法数是否会影响内存消耗?

时间:2016-11-15 12:55:25

标签: java memory memory-management

我想知道这个问题的答案。给出一些背景信息:

我目前正用Java编写自己的国际象棋引擎(是的,我知道C ++会更快),我需要生成很多例如MoveOrder对象,表示从一个boardstate到另一个boardstate的路径。我很方便在类定义中有一些实例方法,当有大量这些对象时会影响程序的速度吗?我应该制作某种包含静态方法的Utility类来处理相同的功能吗?

3 个答案:

答案 0 :(得分:1)

方法计数对单个对象的内存消耗没有影响。每个对象只包含一个标题,包括其类的地址和字段,而不是所有类方法。

答案 1 :(得分:0)

它是实例变量使用的总大小,而不是影响类实例占用空间的方法数。

答案 2 :(得分:0)

没有。该方法只存在一次。在C ++中,您可能听说过方法表。它不是每个对象表的方法。以不同的方式执行操作会浪费内存,因为一旦编译,方法就不会再发生变化。

如果你读到a Method (Oracle),那就说(强调我的):

  

提供有关类或接口上单个方法的信息和访问权。

而不是

“提供有关对象上单个方法的信息和访问权。”

但是,如果没有足够的RAM,许多对象将分配内存并且内存可能会被交换到磁盘,因此对象的数量会影响性能,但这不是由于这些方法。