我从其他开发人员那里听说,对象太昂贵而无法重复实例化,因为“它有一堆方法”。
我的理解(主要来自Bloch)是对象创建主要是通过在构造函数中明确完成的事情来实现成本,特别是创建其他昂贵的对象。
Java中的新对象是否存在每个方法的成本?我想不是,但如果有人拥有它们我需要参考。
谢谢!
我从其他开发人员那里听说,对象太昂贵而无法重复实例化,因为“它有一堆方法”。
我的理解(主要来自Bloch)是对象创建主要是通过在构造函数中明确完成的事情来实现成本,特别是创建其他昂贵的对象。
Java中的新对象是否存在每个方法的成本?我想不是,但如果有人拥有它们我需要参考。
谢谢!
许多方法意味着很大 虚方法表(VMT)。但是,VMT就像元数据一样每个类,因此在第一个实例化时最多只有一次性成本。假设构造函数不执行繁重的操作,后续实例化与具有较少方法的对象一样快。
值得阅读也是章节 从性能调优书中创建对象。
不,类的方法数和JVM执行的时间之间没有关系 new
操作。
说真的,如果你正在考虑这种级别,你不应该使用像Java这样的语言,去编译你的应用程序或用'C'编写你的应用程序。
事实上,您应该专注于算法和数据结构的设计,这将对您的应用程序性能产生比任何潜在的微优化更深远的影响。
另外,对于具有许多实例变量的类,会有轻微的性能损失(不确定它是否真的可以测量)。 Java要求每个新实例的每个实例变量都设置为0,false,null,并且存在与将它们设置为零相关联的运行时成本。然而,它可能只是一个快速完成的memset(或calloc或类似的东西)。
如果有人,我需要参考。
我建议它是 其他开发者 谁应该被要求提供支持他荒谬的主张。