Java十大简单性能优化(15)

这同样适用于其他的整数原始类型的低的值 , 其中包括真char , short , int , long 。

但是仅当您将它们自动装箱或调用时TheType.valueOf() , 才调用构造函数!

除非确实需要新实例 , 否则切勿在包装器类型上调用构造函数 。

这个事实还可以帮助您为同事写一个复杂的 , 愚蠢的愚人节玩笑

堆外

当然 , 您可能还想尝试堆外库 , 尽管它们更多是一个战略决策 , 而不是本地优化 。

彼得·劳里(Peter Lawrey)和本·科顿(Ben Cotton)撰写的有关该主题的有趣文章是:OpenJDK和HashMap…安全地教老狗新技巧(超堆!)技巧

6.避免递归

像Scala这样的现代函数式编程语言鼓励使用递归 , 因为它们提供了将尾递归算法优化回到迭代算法的方法 。 如果您的语言支持这种优化 , 则可能会很好 。 但是即使那样 , 算法的最细微更改都可能会产生一个分支 , 从而阻止您的递归成为尾递归 。 希望编译器能够检测到这一点!否则 , 您可能会浪费大量的堆栈框架 , 而这些内容可能仅使用几个局部变量来实现 。

推荐阅读