Java中的对象实例化是否存在每方法成本?

orb*_*ish 11 java

我从其他开发人员那里听说,一个对象太昂贵而不能反复实例化,因为"它有很多方法".

我的理解(主要来自Bloch)是对象创建主要是通过在构造函数中明确完成的事情来完成的,特别是创建其他昂贵的对象.

Java中的新对象是否存在每个方法的成本?我想不是,但如果有人拥有它们我需要参考.

谢谢!

Luc*_*ero 11

许多方法意味着一个大的虚方法表(VMT).但是,VMT就像元数据一样每个类,因此在第一个实例化时最多只有一次性成本.假设构造函数不执行繁重的操作,后续实例化与具有较少方法的对象一样快.

值得一读也是性能调优书中有关对象创建的章节.

  • *"......在第一次实例化时,只有一次性成本"*.实际上,成本是在课堂加载时产生的. (2认同)