两种方法实现:
public void setPosiotion(int x,int y){ //没做什么 }
public void setPosiotion(Point point){ //没做什么 }
如果我不得不调用setPosition()10亿次,那么不需要创建新Point的方法会更快地工作吗?
答案 0 :(得分:2)
它可能会产生一些小的差异,但它可能会比你编写更长的表达式的时间要少。有时你的时间和效率更重要。
比写入时间更重要的是维护代码所花费的时间,这是开发代码所花费的时间的3倍。这表明可维护性应该是您的主要关注点。
总之;编写简单,清晰易懂的代码,从长远来看,它通常表现良好并且最有效。
答案 1 :(得分:2)
如果我不得不调用setPosition()10亿次,那么不需要创建新Point的方法会更快地工作吗?
这取决于setPosition
方法的作用。
如果该方法只使用x
中的y
和Point
值,那么创建/传递Point
对象可能会更快。
如果该方法立即创建Point
来保存您传递的x
和y
值,那么自己创建Point
可以< / em>要快点。
由于最新的JVM可以使用转义分析来推断Point
对象不需要创建为堆对象,因此这很复杂。另一方面,它取决于需要传递x
和y
值的方法调用(等等)的级别。
简而言之,很难预测。
最后,你假设setPosition
将被称为十亿次是可疑的...除非你实际上已经分析了应用程序。即使它有效,这些调用仍然对整个应用程序执行时间做出了微不足道的贡献。
首先配置文件,然后优化。