在构造函数中使用this和内联代码之间的权衡

时间:2016-08-17 21:59:21

标签: java performance constructor this overloading

通过this()调用重载构造函数可能有用的一个原因是它可以防止不必要的代码重复。在许多情况下,减少重复代码会减少加载类所需的时间,因为对象代码通常较小。这对于通过因特网提供的程序尤其重要,其中加载时间是个问题。

但是,你需要小心。调用this()的构造函数的执行速度比包含所有内联初始化代码的构造函数要慢一些。这是因为调用第二个构造函数时使用的调用和返回机制会增加开销。如果你的类只用于创建少数几个对象,或者类中的构造函数那么 调用this()很少使用,那么运行时性能的降低可能是微不足道的。

加载课程的时间是多少? 和 在构造函数中使用它和使用内联代码之间应该有什么权衡取舍?

1 个答案:

答案 0 :(得分:5)

这是一个过早优化的典型案例。在消除重复时,没有人会考虑性能,他们只考虑删除几个基本上做同样事情的代码路径,同时使代码库混乱,并为这些代码路径之间提供分歧的机会。

结论:不要担心这些小事,只需写出简洁明了的代码。复制会比系统调用对您的系统造成的伤害差几千倍。