是否在创建对象时复制了方法?

时间:2015-06-09 19:49:50

标签: java methods

创建对象时,Java会创建该类属性的副本,但是,在内存中,使用这些方法会发生什么? Java是否创建了这些代码的副本,或者只为所有对象创建了这些代码的副本?

1 个答案:

答案 0 :(得分:2)

他们不是。因为Java是静态类型的,所以在VM中对象看起来像这样:

class_id,
field0,
field1,
...

然后,调用方法的代码可以与类关联,而不是与对象关联,因此不需要重复。我猜你是来自像Python或Javascript这样的语言,你可以在实例上重新分配方法?在Java中,您倾向于使用装饰器来执行此操作。